Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекц_5_MM.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
890.37 Кб
Скачать

2.2. Программируемость

Программируемость – ключевое слово в OpenGL 2.0, оно означает ориентацию API на более широкое взаимодействие с приложениями. Как и подобает подобному стандарту, программируемость графики реализуется через высокоуровневый язык программирования. Язык обладает богатой функциональностью, независим от аппаратных решений (как и подобает стандарту) и разработан специально для OpenGL. Выделим ключевые моменты языка.

Программируемая обработка вершин – про эту функцию вы еще много услышите. Она заменит трансформацию координат, наложение материала (material application), освещение и позволит выполнять произвольные операции по вершинам.

Программируемая обработка фрагментов является еще одной ключевой особенностью. Она заменит доступ к текстурам, наложение текстур и туман и позволит выполнять произвольные операции по фрагментам. Именно этого так долго ждали разработчики.

Программируемый формат изображений заменит фиксированное сжатие изображений, позволив произвольно сочетать тип и формат при отсылке/получении пиксельных данных через OpenGL.

Как видим, идея заключается в уменьшении потребности в существующих и будущих расширениях с помощью замены «запутанности» на «программируемость», обеспечив богатую и долговечную функциональность.

Возможности

Среди других функций, включенный в новый стандарт, можно отметить следующие:

  • прямая поддержка многопроходных алгоритмов, управление осуществляется приложением;

  • более гибкая конфигурация кадрового буфера;

  • внеэкранный (off-screen) рендеринг с помощью OpenGL;

  • приложение может управлять текстурной памятью;

  • единое строение объектов OpenGL;

  • более гибкая поддержка форматов изображений при чтении и записи;

  • более четкие и эффективные механизмы синхронизации;

  • приложение управляет сменой буфера (buffer swaps);

  • использование любого буфера цвета (color buffer) в качестве текстуры.

Следующий график наглядно демонстрирует эволюцию OpenGL.

Рис.4. Эволюция OpenGL.

Преимущества нового API заключаются в стандартизации возможностей и улучшенной производительности, помимо стандартизации существующей функциональности. Большая часть опциональной области OpenGL 1.3 по обработке изображений (imaging subset) перешла в разряд стандарта OpenGL 2.0. Многочисленные расширения будут введены в стандартный состав OpenGL 2.0, что позволит выжать максимальную производительность из «железа». В результате мы выиграем в производительности при работе с графической подсистемой и добьемся большего параллелизма между процессором и графическим чипом. Схематично вид нового API можно представить следующей схемой:

Итак, когда ситуация казалась весьма мрачной, графическое сообщество доказало свою приверженность именно графике, а не своим платформам и продуктам. Даже Microsoft показала свой интерес к расширению OpenGL, но намного более воодушевляет желание основных производителей «железа» открыть свою интеллектуальную собственность, хотя раннее они высказывались в противоположном направлении. И ATi, и nVidia подтвердили свое желание вместе работать над технологиями.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]