OpenGL 3.0

OpenGL 3.0

OpenGL 3.0 — третья версия спецификации OpenGL, которая была представлена 11 августа 2008 года.[1]

Содержание

Изменения

  • + обновление GLSL до 1.3
  • + новый раздел — deprecation model
  • + объявление части функциональности deprecated
  • ! в следующем стандарте deprecated функциональность будет убрана полностью (в 3.1 вернулась под расширением GL_ARB_compatability)
  • + возможность создания контекста (через расширение ARB_create_context), который генерирует ошибки при использовании deprecated функций
  • - убран режим индексного цвета (палитра), включая форматы текстур
  • - убрана отрисовка с помощью glBegin/glEnd и из массивов, расположенных в системной памяти
  • - убраны все встроенные вершинные атрибуты и функции по их установке (теперь только пользовательские атрибуты)
  • - убран весь GL state кроме gl_DepthRange и стек матриц трансформаций, а также функции для настройки FFP
  • - убрана смена толщины линий
  • - убраны примитивы QUAD, QUAD_STRIP и POLYGON
  • - теперь режим отображения задних и передних граней обязательно должен совпадать
  • - убрана запись пикселей и растровые операции
  • - убраны форматы ALPHA LUMINANCE, LUMINANCE ALPHA, и INTENSITY (заменены R и RG текстурами)
  • - убран альфатест
  • - убран буфер аккумулятора
  • - убраны Evaluators
  • - убран режим выбора
  • - убраны дисплейные списки
  • - убран стек атрибутов
  • + добавлено расширение #EXT_gpu_shader4
  • + добавлено расширение EXT_framebuffer_object
  • + точное управление регионов для мапинга буферов в клиентскую память

EXT_gpu_shader4

Обеспечивает Shader Model 4.0. Нативная поддержка int и uint. Получение размера текстуры, обращение к конкретным текселям текстуры или по обычным координатам, но с целочисленным сдвигом. gl_VertexID на вход вершинного шейдера. Выбор режима интерполяции varying’ов. Не поддерживаются геометрические шейдеры.

NV_conditional_render

Обеспечивает выполнение отрисовки в зависимости от результата query, который не нужно получать от видеокарты.

Новые форматы вещественных текстур

  • ARB_color_buffer_float
  • NV_depth_buffer_float — 32-битный буфер глубины
  • ARB_texture_float
  • EXT_packed_float
  • EXT_texture_shared_exponent

Визуализация в рендер таргет с мультисемплингом

  • EXT_framebuffer_multisample
  • EXT_framebuffer_blit — ресолв в обычную текстуру

Новые 16-тибитные форматы с плавающей точкой для вершинных атрибутов и фреймбуфера

  • NV_half_float
  • ARB_half_float_pixel

Другие новые расширения

  • EXT_texture_integer — целочисленные текстуры
  • EXT_texture_array — массивы текстур
  • EXT_packed_depth_stencil — формат render buffer с interleaved глубиной и значением стенсиля (читать D24S8)
  • EXT_draw_buffers2 — раздельный режим блендинга для разных таргетов при MRT
  • EXT_texture_compression_rgtc — поддержка сжатых форматов для одноканальных и двухканальных текстур
  • EXT_transform_feedback — потоковый вывод из вершинного шейдера
  • EXT_framebuffer_sRGB — sRGB текстуры, в которые можно рисовать

Все эти расширения были доступны задолго до выхода 3.0[источник не указан 1289 дней]

GLSL 1.3

  • + поддержка функциональности #EXT_gpu_shader4, текстурной выборки с пользовательскими градиентами, функций для работы с целочисленными текстурами
  • + переименованы функции текстурных выборок: теперь не нужно писать тип текстуры (1D, 2D, 3D, Cube, *Shadow), просто texture(…) — компилятор сам определит, что требуется
  • - убраны встроенные атрибуты, GL state
  • - убран ftransform()- требуется ставить флажок invariant

Недоступная функциональность против DirectX 10

Некоторые возможности существующие в DirectX 10 (при условии поддержки видеокарт) оказались за бортом:

  • - нет геометрических шейдеров
  • - нет инстансинга
  • - нет константных буферов
  • - нельзя читать отдельные семплы multi-sampled текстуры в GLSL

Функциональность из приведенного списка предложена отдельными расширениями от ARB (за исключением чтения из MS текстуры). Вот только ждать этих расширений от некоторых вендоров возможно придётся довольно долго. Однако, для использования этой функциональности не нужно переписывать код рендерера как в случае с DX9 на DX10.[2]

Примечания

  1. The Khronos™ Group announced today it has released the OpenGL® 3.0 specification  (англ.). opengl.org (11 августа 2008 года). Архивировано из первоисточника 25 августа 2011. Проверено 5 июня 2009.
  2. The ARB announced OpenGL 3.0 and GLSL 1.30 today — OpenGL.org Discussion and Help Forums

См. также

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Полезное


Смотреть что такое "OpenGL 3.0" в других словарях:

  • OpenGL — Original author(s) Silicon Graphics Developer(s) Khronos Group Stable release 4.2 …   Wikipedia

  • OpenGL — Desarrollador Khronos Group www.opengl.org Información general Diseñador Silicon Graphics …   Wikipedia Español

  • OpenGL — Entwickler Khronos Group Aktuelle Version 4.2 (8. August 2011) Betriebssystem …   Deutsch Wikipedia

  • Opengl — Entwickler: Khronos Group Aktuelle Version: 3.1 (24. März 2009) Betriebssystem: plattformunabhängig Kategorie …   Deutsch Wikipedia

  • OpenGL — Тип API Раз …   Википедия

  • OpenGL ES — Original author(s) Khronos Group Developer(s) Khronos Group …   Wikipedia

  • OpenGL — Développeur Silicon Graphics Dernière version …   Wikipédia en Français

  • Opengl — Développeur Silicon Graphics Dernière version …   Wikipédia en Français

  • OpenGL++ — was intended to be a powerful layer above the OpenGL 3D graphics system written in C++ that supported object oriented data structures. The project started as the result of a partnership between SGI, IBM and Intel (and later Digital Equipment… …   Wikipedia

  • OpenGL ES — (OpenGL for Embedded Systems) es una variante simplificada de la API gráfica OpenGL diseñada para dispositivos integrados tales como teléfonos móviles, PDAs y consolas de videojuegos. La define y promueve el Grupo Khronos, un consorcio de… …   Wikipedia Español

  • OpenGL ES — Entwickler: Khronos Group Aktuelle Version: 2.0 Betriebssystem: plattformunabhängig Kategorie: API …   Deutsch Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»