- •1. Что такое OpenGl
- •2. Direct3d vs. OpenGl
- •2. Спецификация
- •4. Архитектура
- •5. Расширения
- •6. Дополнительные библиотеки
- •7. Независимость от языка программирования
- •8. История версий
- •OpenGl 2.0
- •OpenGl 3.0
- •OpenGl 3.1
- •OpenGl 3.2
- •OpenGl 3.3
- •OpenGl 4.0
- •OpenGl 4.1
- •OpenGl 4.2
- •OpenGl 4.3
- •9. Практический пример Tao Framework
- •Установка Tao Framework
- •10. Создание проекта и подключение библиотеки Tao OpenGl в с#
- •11. Инициализация OpenGl в c# .Net
- •Список литературы
OpenGl 2.0
В сентябре 2001 года 3DLabs раскрыла свое видение OpenGL 2.0.
Говорили, что по сравнению с DirectX главной проблемой OpenGL является консорциум (который и должен заниматься развитием OpenGL), в который входит большое количество компаний с различными интересами, что приводит к длительному периоду принятия новой версии спецификации. OpenGL версии 2.0 была представлена 3Dlabs в ответ на беспокойство относительно медленного и нечёткого направления развития OpenGL. 3Dlabs предложила ряд существенных дополнений к стандарту, наиболее значимым из которого было добавление к ядру OpenGL языка обработки полутонов GLSL (OpenGL Shading Language). Это позволяет программисту заменить фиксированный конвейер OpenGL небольшими программами на специальном языке для создания различных эффектов, таких, как bump mapping, normal mapping, parallax mapping, HDR и т. д.
Однако ещё до введения в стандарт OpenGL языка GLSL существовала возможность разрабатывать спецэффекты на языках ассемблера (расширения vertex_program, fragment_program) и Cg <http://ru.wikipedia.org/w/index.php?title=Cg&action=edit&redlink=1> (NVidia C for Graphics). Многие предложенные возможности пока отсутствуют в версии OpenGL 2.0, хотя некоторые из них реализованы многими производителями в виде расширений.
OpenGl 3.0
11 августа 2008 года Khronos Group представила новую версию спецификации OpenGL
Поддерживают видеокарты: Radeon серии HD; GeForce 8, 9, GTX 100, GTX 200, GTX 300 и GTX 400 серий.
OpenGl 3.1
24 марта 2009 года Khronos Group анонсировала OpenGL 3.1. В новой версии произведена чистка компонентов, которые были объявлены устаревшими, но оставались в OpenGL 3.0 для сглаживания перехода на новую версию API (устаревшие компоненты возможно в дальнейшем использовать через расширение GL_ARB_compatibility).
OpenGl 3.2
3 августа 2009 года Khronos Group анонсировала OpenGL 3.2. Новая версия продолжает развитие стандарта OpenGL, чтобы дать разработчикам графики кроссплатформенный доступ к передовой функциональности GPU.
Поддерживают видеокарты: Radeon серии HD; GeForce 8000, 9000, GTX серий 200 и 400.
Нововведения:
Поддержка OpenGL Shading Language версии 1.50 (GLSL).
Порядок вершинных компонентов BGRA (GL_ARB_vertex_array_bgra) - теперь в шейдере можно читать 4-компонентные вершинные атрибуты в формате RGBA.
Команды отрисовки теперь позволяют модификацию базового индекса вершины (GL_ARB_draw_elements_base_vertex) - теперь легко можно использовать один набор вершинных буферов (для координат и прочих атрибутов) для хранения множества мешей (меньше переключений буферов - быстрее рендеринг).
Геометрические шейдеры (GL_ARB_geometry_shader4).
OpenGl 3.3
Представлена вместе с OpenGL 4.0 11 марта 2010 года. Позволяет максимально возможно приблизиться к функциональности OpenGL 4.0 на аппаратной базе предыдущего поколения.
OpenGl 4.0
11 марта 2010 года Khronos Group представила финальный вариант спецификации OpenGL 4.0 и языка шейдеров GLSL 4.0. OpenGL 4.0 полностью обратно совместим со старыми расширениями OpenGL, используя режим совместимости введенный в OpenGL 3.2
Среди нововведений:
Две новые ступени обработки шейдеров, что позволяет перенести обработку тесселяции с центрального процессора на GPU.
Прорисовка данных, сгенерированных OpenGL или такими внешними API, как OpenCL, без участия центрального процессора.
64-битная двойная точность с плавающей запятой операций с шейдерами и ввода-вывода для увеличения точности и качества рендеринга.
