Немного Об OpenGL
Как известно, OpenGL расшифровывается как Open Graphics Library, что в переводе на русский язык означает «открытая графическая библиотека».
Другими словами, OpenGL - это некая спецификация, включающая в себя несколько сотен функций. Она определяет независимый от языка программирования кросс-платформенный программный интерфейс, с помощью которого программист может создавать приложения, использующие двухмерную и трехмерную компьютерную графику. Первая базовая версия OpenGL появилась в 1992 году – она была разработана компанией Silicon Graphics Inc., занимающейся разработками в области трехмерной компьютерной графики.
За следующие 17 лет версия библиотеки достигла отметки 3.1. Но нельзя сказать, что библиотека видоизменялась, нет. Ее создатели заложили в нее механизм расширений, благодаря которому производители аппаратного обеспечения (к примеру, производители видеокарт) могли выпускать расширения OpenGL для поддержки новых специфических возможностей, не включенных в текущую версию библиотеки. Благодаря этому, программисты могли сразу использовать эти новые возможности, в то время как в случае использования библиотеки Microsoft Direct3D им бы пришлось ждать выхода новой версии DirectX.
В современном мире, библиотеки OpenGL и DirectX являются конкурентами на платформе MS Windows. Microsoft всеми силами продвигает свою библиотеку DirectX, а также всеми силами стремится замедлить развитие библиотеки OpenGL, что ослабило бы графическую систему конкурирующих ОС, где для реализации вывода всей графики используется исключительно библиотека OpenGL. Мы будем учиться визуализации компьютерной графики именно с применением этой библиотеки. Но, к сожалению, прямой поддержки данной библиотеки в .NET Framework нет, опять же по причинам конкуренции. Поэтому мы будем использовать библиотеку Tao Framework, о которой поговорим в следующей части главы.
Пара слов об OpenGL 4
11 марта 2010 года Khronos Group на GDC объявила о выпуске спецификации OpenGL 4.0:Рисунок 1. OpenGL 4.0
Эволюция OpenGL 1 — 4
Спецификация OpenGL 4.0 была разработана рабочей группой OpenGL ARB (Architecture Review Board) в Кроносе (Khronos), и включает в себя обновлённый язык GLSL 4.00 OpenGL Shading, что позволяет разработчикам получить доступ к последним поколениям ускорителей GPU со значительно улучшенным качеством графики, производительности и увеличенной скорости гибкого программирования.Эта новая версия продолжает стремительное развитие свободного стандарта OpenGL, для того чтобы графические разработчики имели доступ ко всей функциональности современных GPU для использования в самых разнообразных операционных системах и платформах. Полная спецификация доступна для скачивания на http://www.opengl.org/registry.
OpenGL 4.0 улучшает тесные взаимодействия с OpenCL™ для ускорения вычислительных ресурсов графических приложений. OpenGL 4.0 также продолжает оказывать поддержку совместимости с OpenGL 3.2, что позволяет разработчикам использовать упрощенный API или сохранить обратную совместимость для существующего кода OpenGL в зависимости от потребностей рынка.
Основные изменения
OpenGL 4.0 был специально разработан, чтобы принести значительные выгоды для разработчиков приложений, в том числе:- 2 новых уровня шейдеров, которые обрабатываются в GPU для разгрузки CPU при выполнении тессиляции;
- поддержка выборочных фрагментных шейдеров и программируемых фрагментных шейдеров для увеличения качества рендеринга и гибкости при реализации сглаживания;
- отрисовка данных, полученных в OpenGL или через внешние интерфейсы, таких как OpenCL, без вмешательства центрального процессора;
- шейдерные подпрограммы для значительного увеличения гибкости программирования;
- разделение состояния текстур и текстурных данных за счет добавления нового типа объекта данных – «объекты семплов»;
- 64-битная двойная точность шейдерных операций с плавающей точкой и входов / выходов для увеличения точности и качества рендеринга;
- улучшена производительность, в том числе экземпляров геометрических шейдеров, экземпляров массивов, а также новым подходом запросов к таймеру.
Все это дает максимальную гибкость и охват платформ для разработчиков приложений. Полная спецификация OpenGL 3.3 также доступна для скачивания на http://www.opengl.org/registry
OpenGL 4.1
26 июля 2010 года Khronos Group анонсировала спецификацию OpenGL 4.1. Спецификация включает в себя обновление GLSL (GL Shading language) до версии 4.10 и несет в себе как нововведения (такие как обеспечение полной совместимости с OpenGL ES 2.0 API, улучшения взаимодействия с OpenGL, улучшения при работе в WebGL приложениями и другие).В англоязычной части интернета уже появились новые уроки и демонстрационные программы по использованию OpenGl 3.2 и OpenGL 4.
В скором времени вы сможете прочитать пару слов о спецификации OpenGL 4.1.