Р Редакторы переменных - параметры шейдера можно редактировать посредством графических элементов управления, вид которых зависит от типа данных редактируемого параметра; есть элементы для цвета, векторов, матриц, скалярных чисел; можно также создавать свои элементы управления.

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

□ Предварительный просмотр - позволяет быстро просмотреть результаты применения эффекта; изменения в исходном коде шейдера или в его параметрах немедленно отражаются в окне предварительного просмотра; параметры изображения можно настраивать; точка обзора задается (спереди, сзади, сбоку); поддерживается предварительный просмотр для DirectX 9.0, Open GL и языка шейдеров Open GL.

□ Экспортер - все, что требуется для создания эффекта, записывается в отдельный файл в XML-формате.

□ Импортер - все, что требуется для создания эффекта, может быть прочитано из отдельного файла в XML-формате.

XML-формат был выбран основой для хранения информации о шейдере в Ren-derMonkey, так как это промышленный стандарт, формат файла достаточно удобочитаем, его можно расширять, и существует большое количество бесплатных синтаксических анализаторов в свободном доступе. Файл в XML-формате, в котором хранится эффект, содержит весь исходный код шейдера, все состояния для рендеринга, все модели, информацию о текстурах. Поэтому легко создавать, совместно использовать свойства шейдера и управлять ими.

8.4.2. Внешний интерфейс компилятора языка шейдеров OpenGL

В июне 2003 г. компания 3Dlabs выпустила открытую версию лексического анализатора, синтаксического анализатора, семантического анализатора (то есть внешний интерфейс - front-end - компилятора языка шейдеров OpenGL). Эти программы способны считывать шейдер OpenGL и преобразовывать его в поток лексем, то есть проводить лексический анализ. Затем поток лексем проверяется на правильность выражений. Эта процедура называется синтаксический анализ, или парсинг. Затем выполняется семантический анализ - проверка шейдера на соответствие семантическим правилам, определенным или предполагаемым спецификацией языка шейдеров OpenGL. Результат такой обработки преобразуется в представление исходного кода на высоком уровне. Этот высокоуровневый промежуточный язык (high-level intermediate language, HIL) - двоичное представление исходного кода, которое может в дальнейшем обрабатываться внутренним аппаратно-зависимым модулем компилятора, при этом создается машинный код для конкретного вида графического акселератора.

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


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