OpenGL 4.1


OpenGL 4.1 берет на себя DirectX. В то время как Microsoft изо всех сил пытается найти последовательный способ переноса 3D в Интернет, OpenGL просто справляется со своей задачей.

Новое обновление OpenGL с десятичной запятой – OpenGL 4.1 – знаменует возрождение судьбы 3D-фреймворка. Это шестое обновление за два года, которое свидетельствует о возрождении энергии в лагере разработчиков OpenGL.

OpenGL становится все более важным, поскольку он поддерживает трехмерную графику на мобильных телефонах и веб-страницах. На рабочем столе OpenGL пострадал от того, что он также работает по сравнению со всеохватывающим DirectX под Windows.

Однако у OpenGL всегда было одно огромное преимущество в том, что он не зависел от платформы – он работает под Windows, Mac OS X, Linux и большинством разновидностей Unix, не говоря уже о многих игровых консолях. Если вы создаете приложение с помощью DirextX, то вы нацелены на Windows, но если вы выберете OpenGL, теоретически вы можете запускать свое творение практически где угодно.

Теперь, в дополнение к традиционным платформам, на которых работает полная версия OpenGL, у нас есть OpenGL ES, который обеспечивает уменьшенную поддержку 3D на iOS 4 (iPhone, iPad) и последней версии ОС Android.

Добавьте это к тому факту, что OpenGL – это основная технология, лежащая в основе WebGL, которая добавляет 3D к объекту HTML5 Canvas, и вы можете оценить, что это охватывает большинство платформ и применений.

Последний выпуск полностью совместим с OpenGL ES 2.0, функцией, которая должна упростить перенос приложений с рабочего стола на мобильные устройства – хотя, конечно, при переходе с рабочего стола на мобильное устройство есть много других проблем, кроме 3D. Однако из акцента, сделанного как на обратной совместимости новой версии, так и на ее совместимости с OpenGL, ясно, что ее новая роль и важность хорошо понятны.

Другие улучшения в основном направлены на использование графического процессора. Например, теперь вы можете загружать предварительно скомпилированные шейдеры с диска, вместо того, чтобы создавать их на лету. Разделение фрагментного и вершинного шейдеров – логический шаг, приводящий OpenGL в соответствие с DirectX, и теперь шейдеры могут использовать 64-битную точность. Также была улучшена поддержка OpenCL, что не удивительно, поскольку за оба проекта с открытым исходным кодом отвечает одна и та же организация, Khronos.

Фактор Microsoft

Самая большая проблема для OpenGL – это Microsoft, но Microsoft тоже не очень хорошо продвигает DirectX.

Хотя библиотека OpenGL включена во все версии Windows, она обычно работает без аппаратного ускорения, если пользователь не достаточно умен, чтобы знать, как установить драйверы устройств OpenGL для своего графического оборудования. В результате OpenGL обычно возвращается к любой версии 1.1. или 1.4. В Vista и Windows 7 OpenGL работает под оболочкой DirectX, которая обеспечивает некоторое аппаратное ускорение, но все же медленнее, чем собственное аппаратное ускорение, обеспечиваемое драйвером OpenGL.

Когда дело доходит до принятия WebGL на основе OpenGL, все основные разработчики браузеров поддерживают его – за исключением Microsoft.

Ясно, что сообщество OpenGL рассматривает DirectX как своего главного конкурента, но это не означает, что Microsoft работает правильно. DirectX раньше был передовым API, который интересовал программистов, которые в первую очередь не интересовались высокопроизводительным 3D. Выпуск новой версии DirectX был событием и всегда казался источником инноваций, поскольку он объединял все больше технологий в свой бренд Direct. Теперь DirectX находится на обочине, поскольку средний программист заинтересован в XNA, и скромная поддержка 3D в WPF.

Если вы программируете на управляемом языке, таком как C #, то OpenGL на самом деле проще использовать с помощью традиционных вызовов функций DLL, чем DirectX с его непонятными и недостаточно поддерживаемыми интерфейсами COM.

Что касается присутствия в Интернете, в настоящее время Silverlight не основан на DirectX и не поддерживает 3D. Учитывая, что Silverlight должен быть кроссплатформенным, а DirectX в значительной степени основан на Windows, трудно понять, как Microsoft может объединить 3D веб-объект в Silverlight или Explorer. На самом деле было бы легче принять OpenGL, чем создавать что-то на основе DirectX.

Единственным исключением из этой печальной истории является Windows Phone 7. Настаивая на DirectX-совместимом GPU, Phone 7 может поддерживать XNA и настоящее 3D. Однако даже здесь возникают проблемы при объединении среды разработки Silverlight, не поддерживающей DirectX, с 3D, предоставляемым DirectX. На данный момент у вас может быть приложение Silverlight или приложение XNA, но вы не можете их смешивать.

Суть в том, что Microsoft пренебрегла DirectX, пренебрегала разработчиками, которые могли бы его использовать, и у них нет стратегии для 3D в сети.

Это оставляет много территории открытой для OpenGL.


Добавить комментарий