Создание программ построения теней

Эта глава объясняет, как использовать Разработчика Программы построения теней OpenGL для установки проектов, добавьте код программы построения теней, добавьте ресурсы и измените переменные. Прежде, чем считать эту главу, необходимо уже быть знакомы с OpenGL и знать, как записать по крайней мере одно из следующего:

Разработчик Программы построения теней OpenGL также поддерживает программы построения теней геометрии, недавнее дополнение к спецификации OpenGL (см. Расширение OpenGL GL_NV_geometry_shader4). Программы построения теней геометрии не поддерживаются на всех видеокартах. Но потому что средство рендеринга программного обеспечения Apple вступает как нейтрализация при необходимости, можно использовать Разработчика Программы построения теней OpenGL для разработки их.

Создание и сохранение проектов

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

При запуске Разработчика Программы построения теней OpenGL это открывается к пустому, неназванному проекту. Для сохранения проекта выберите File> Save Project и введите название проекта. Проект может содержать столько исходных файлов и текстур, сколько Вы хотели бы. Используя флажки в списке файлов, можно выбрать который исходные файлы сделать активным.

Создание и сохранение расположения

Расположение указывает расположение и число окон, которые Вы хотите, чтобы Разработчик Программы построения теней OpenGL обеспечил, при открытии новых и существующих проектов.

Создать и сохранить расположение:

  1. Запустите разработчика программы построения теней OpenGL.

  2. Дважды щелкните по каждой вкладке, представление которой Вы хотите открыть в отдельном окне.

  3. Расположите окна для удовлетворения предпочтению.

  4. Выберите Window> Save Layout.

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

Добавление текстур

Для добавления текстуры к представлению Textures перетащите файл текстуры к изображению хорошо. Можно добавить любую из этих целей текстуры: 1D, 2D, RECTANGLE, SHADOW_1D, SHADOW_2D, и SHADOW_RECTANGLE.

Добавить a 3D текстура, Вы перетаскиваете все необходимые файлы к изображению хорошо. Число изображений в этой цели текстуры должно быть питанием 2 (2, 4, 8, 16, 32, и т.д.). Иначе, Разработчик Программы построения теней OpenGL вставляет изображение по умолчанию в z направление.

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

  Куб рисунка 2-1 обращенным к расположению для карты куба
Cube face layout for a cube map

Добавить карту куба:

  1. Назовите каждый файл текстуры с помощью соглашения, указывающего расположение в карте куба или 3D текстуре.

    Для карт куба можно использовать любое из соглашений, перечисленных в Таблице 2-1. Например, если основное имя файла для карты куба mycube, Вы могли назвать файлы текстуры: mycube_back, mycube_down, mycube_forward, mycube_left, mycube_right, и mycube_up.

  2. В Средстве поиска выберите файлы текстуры и перетащите их к изображению хорошо.

Табличные 2-1  Соглашения о присвоении имен, отображающие файлы текстуры для определения объема поверхностей в карте куба

X + поверхность

Поверхность X–

Y + поверхность

Поверхность Y–

Z + поверхность

Поверхность Z–

posx

negx

posy

negy

posz

negz

xpos

xneg

ypos

yneg

zpos

zneg

right

left

top

down

front

back

rt

lf

up

dn

ft

bk

+x

–x

+y

–y

+z

–z

Используя альтернативные представления текстуры

Разработчик Программы построения теней OpenGL обеспечивает два способа для Вас просмотреть текстуры. Представление по умолчанию показывает данные текстуры просто как плоское представление. Альтернативное представление показывает, как текстура появляется, когда применено к цель, с помощью фильтра и режимов обертки, которые Вы выбираете. Альтернативное представление особенно полезно, если Вы не уверены в том, как определенный фильтр или режим обертки будут влиять на результат. Вы могли бы также счесть альтернативное представление полезным для визуализации 3D и карты куба.

Альтернативное представление особенно полезно для карт куба. В то время как альтернативное представление на рисунке 2-3 проектирует поверхности куба в трех измерениях, представление по умолчанию на рисунке 2-2 показывает «развернутый» куб.

Для наблюдения альтернативного представления дважды щелкните по текстуре.

Рисунок 2-2  представление по умолчанию для карты куба
The default view for a cube mapThe default view for a cube map

Если Вы не предоставили многократные файлы для карты куба или 3D текстуры или если Вы не использовали основанное на местоположении соглашение о присвоении имен (см. Добавляющие Текстуры), Вы заметите прямоугольники с числом или буквами в них, когда Вы переключитесь для чередования представления.

Рисунок 2-3  альтернативное представление для карты куба
The alternate view for a cube mapThe alternate view for a cube map

Изменение универсальных переменных

Разработчик Программы построения теней OpenGL автоматически перечисляет универсальные переменные от Вашего исходного кода в представлении Symbols. Как они, универсальная переменная выведена на экран, зависят от типа программы. Программы построения теней GLSL используют совместно используемую таблицу символов для единственного объекта программы, таким образом, Вы будете видеть, что универсальные переменные появляются в единственном списке. Напротив, фрагмент ARB и программы вершины имеют их собственную таблицу символов на конвейерное состояние, которые разделяются локальными переменными и переменными окружения на этап. Поэтому локальные переменные ARB и переменные окружения появляются в отдельных списках.

Средства управления для переменного отражения, что тип данных переменной, независимо от того как сложный тип (см. рисунок 2-4). Можно использовать средства управления для ручного изменения значения, или можно выбрать Animate для автоматического варьирования универсальной формы от одного значения до другого. Независимо от того, который Вы выбираете, Вы получите непосредственную обратную связь путем рассмотрения представления Render пока автоматическая компиляция, и автоматические опции ссылки включены.

  Средства управления рисунком 2-4 для матричной структуры
Controls for a matrix structure

Создание программ построения теней

Чтобы создать программу построения теней и удостовериться, это работает правильно, выполните эти шаги:

  1. Откройте OpenGL Shader Builder.

  2. Добавьте исходный код шейдера.

    Если Вы уже записали исходные файлы программы построения теней, нажмите Add Shaders. Затем перейдите к файлам, которые Вы хотите добавить к списку файлов и выбрать их.

    Если Вы хотите ввести исходный код, выбрать File> New и затем выбрать тип программы построения теней, Вы хотите записать. Файл исходного кода открывается в его собственном окне. Можно изменить код по умолчанию, предоставленный в шаблоне.

  3. Проверьте Журнал Ссылки для проверки программ, соединенных успешно. Вы могли бы также хотеть проверить результаты ссылки.

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

    Если ссылка перестала работать, проверьте, чтобы удостовериться, что Вы добавили все необходимые исходные файлы. Например, если Вы добавляете фрагмент или программу геометрии, не добавляя связанную программу вершины, соединяя сбои.

  4. В представлении Textures добавьте любые текстуры, которые являются подходящими для Вашей программы построения теней.

    Вы наиболее вероятно захотите заменить текстуру по умолчанию.

  5. В представлении Symbol анимируйте один или больше универсальных переменных.

  6. В представлении Render выберите геометрию из всплывающего меню.

    Можно перетащить указатель для перемещения представленного изображения.

После того, как Ваша программа построения теней работает, можно хотеть протестировать ее производительности в сравнении с эталоном.

Проверка производительности программы построения теней

Это - хорошая идея проверить частоту кадров Вашей программы построения теней прежде и после внесения изменений в код. Можно измерить частоту кадров путем выполнения этих шагов:

  1. В представлении Render нажмите Benchmark.

    Окно сравнительного теста открывается.

  2. Введите номер секунд для эталонного тестирования. Затем нажмите Run.

    Отметьте прошедшее время и кадры в секунду.

Если бы Вы находите, что частота кадров намного ниже, чем Вы хотели бы, проверьте, чтобы видеть, выполняете ли Вы:

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

Для получения информации идентифицируя и решая проблемы производительности с приложениями OpenGL, см. Руководство пользователя Профилировщика OpenGL.

Поиск и устранение неисправностей ошибок

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

Можно иногда диагностировать ошибки путем исследования правильно написанного кода и сравнения его с нашим собственным. Можно хотеть смотреть на следующее: