□ Язык шейдеров OpenGL - высокоуровневый процедурный язык.

□ Такой же язык, с небольшими изменениями, используется для вершинных и фрагмеитных шейдеров.

□ Он базируется на синтаксисе н управлении С и C++.

□ Изначально в нем поддерживаются векторные и матричные операции, так как они являются неотъемлемой частью многих графических алгоритмов.

□ Язык более жестко проверяет типы, чем С и C++, и функции могут вызываться по возвращаемому значению.

□ Он использует квалификаторы типов чаще, чем управление вводом-выводом.

□ У него пет ни ограничений на длину шейдера, ни необходимости ее запрашивать.

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

2.2. Для чего нужны шейдеры

До последнего времени OpenGL предоставлял программистам гибкий, но статичный интерфейс для рисования графики на дисплее. Как сказано в главе 1, OpenGL - это последовательность операций, применяемых к геометрическим или растровым данным, отправленным через графический ускоритель для вывода на экран. На этих этапах можно менять различные параметры, чтобы настраивать обработку графики нужным образом. Но только с OpenGL API невозможно изменить ни фундаментальную операцию, ни их порядок.

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

Если какое-либо приложение устраивает традиционная модель рендеринга, ему никогда не понадобятся шейдеры.

Цель языка шейдеров OpenGL и соответствующего OpenGL АР] - дать приложениям возможность определять, как будет происходить обработка графики па некоторых этапах с помощью высокоуровневого языка программ ирования, сконструированного специально для этого. Этапы, о которых идет речь, сделаны программируемыми, чтобы дать приложениям полную свободу в определении способа обработки изображения. Это позволяет приложениям использовать графический ускоритель для достижения большого количества эффектов визуализации.

Чтобы увидеть, какие эффекты можно получить с помощью шейдеров OpenGL, посмотрите на цветные вклейки. Эта книга представляет большое разнообразие шейдеров, которые улучшают поверхность настолько, насколько это возможно. С каждым новым поколением графических ускорителей все более сложные техники рендеринга могут быть выполнены как OpenGL-шейдеры и использованы в приложениях для рендеринга в реальном времени. Вот краткий список того, чего можно достичь с использованием шейдеров OpenGL:

□ увеличенная реалистичность отображения материалов - металла, камня, дерева, краски и т. д.;

□ увеличенная реалистичность эффектов освещения - освещенных областей, мягких теней и т. д.;

□ изображение природных явлений - огня, дыма, воды, облаков и т. д.;


⇐ вернуться назад | | далее ⇒