Создание программ построения теней
Эта глава объясняет, как использовать Разработчика Программы построения теней OpenGL для установки проектов, добавьте код программы построения теней, добавьте ресурсы и измените переменные. Прежде, чем считать эту главу, необходимо уже быть знакомы с OpenGL и знать, как записать по крайней мере одно из следующего:
Фрагмент ARB и программы вершины. Посмотрите расширения OpenGL GL_ARB_fragment_program и GL_ARB_vertex_program.
Фрагмент GLSL и вершинные шейдеры. Посмотрите, что OpenGL Заштриховывает Язык (PDF).
Разработчик Программы построения теней OpenGL также поддерживает программы построения теней геометрии, недавнее дополнение к спецификации OpenGL (см. Расширение OpenGL GL_NV_geometry_shader4). Программы построения теней геометрии не поддерживаются на всех видеокартах. Но потому что средство рендеринга программного обеспечения Apple вступает как нейтрализация при необходимости, можно использовать Разработчика Программы построения теней OpenGL для разработки их.
Создание и сохранение проектов
Проект является набором ресурсов, составляющих одну программу — вершина, фрагмент, и исходные файлы геометрии и текстуры. Как с любой средой разработки, можно назвать и сохранить проекты. У Вас может также быть больше чем один проект, открытый за один раз.
При запуске Разработчика Программы построения теней OpenGL это открывается к пустому, неназванному проекту. Для сохранения проекта выберите File> Save Project и введите название проекта. Проект может содержать столько исходных файлов и текстур, сколько Вы хотели бы. Используя флажки в списке файлов, можно выбрать который исходные файлы сделать активным.
Создание и сохранение расположения
Расположение указывает расположение и число окон, которые Вы хотите, чтобы Разработчик Программы построения теней OpenGL обеспечил, при открытии новых и существующих проектов.
Создать и сохранить расположение:
Запустите разработчика программы построения теней OpenGL.
Дважды щелкните по каждой вкладке, представление которой Вы хотите открыть в отдельном окне.
Расположите окна для удовлетворения предпочтению.
Выберите 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 использует для карт куба.
Добавить карту куба:
Назовите каждый файл текстуры с помощью соглашения, указывающего расположение в карте куба или 3D текстуре.
Для карт куба можно использовать любое из соглашений, перечисленных в Таблице 2-1. Например, если основное имя файла для карты куба
mycube
, Вы могли назвать файлы текстуры:mycube_back
,mycube_down
,mycube_forward
,mycube_left
,mycube_right
, иmycube_up
.В Средстве поиска выберите файлы текстуры и перетащите их к изображению хорошо.
X + поверхность | Поверхность X– | Y + поверхность | Поверхность Y– | Z + поверхность | Поверхность Z– |
---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Используя альтернативные представления текстуры
Разработчик Программы построения теней OpenGL обеспечивает два способа для Вас просмотреть текстуры. Представление по умолчанию показывает данные текстуры просто как плоское представление. Альтернативное представление показывает, как текстура появляется, когда применено к цель, с помощью фильтра и режимов обертки, которые Вы выбираете. Альтернативное представление особенно полезно, если Вы не уверены в том, как определенный фильтр или режим обертки будут влиять на результат. Вы могли бы также счесть альтернативное представление полезным для визуализации 3D и карты куба.
Альтернативное представление особенно полезно для карт куба. В то время как альтернативное представление на рисунке 2-3 проектирует поверхности куба в трех измерениях, представление по умолчанию на рисунке 2-2 показывает «развернутый» куб.
Для наблюдения альтернативного представления дважды щелкните по текстуре.
Если Вы не предоставили многократные файлы для карты куба или 3D текстуры или если Вы не использовали основанное на местоположении соглашение о присвоении имен (см. Добавляющие Текстуры), Вы заметите прямоугольники с числом или буквами в них, когда Вы переключитесь для чередования представления.
Изменение универсальных переменных
Разработчик Программы построения теней OpenGL автоматически перечисляет универсальные переменные от Вашего исходного кода в представлении Symbols. Как они, универсальная переменная выведена на экран, зависят от типа программы. Программы построения теней GLSL используют совместно используемую таблицу символов для единственного объекта программы, таким образом, Вы будете видеть, что универсальные переменные появляются в единственном списке. Напротив, фрагмент ARB и программы вершины имеют их собственную таблицу символов на конвейерное состояние, которые разделяются локальными переменными и переменными окружения на этап. Поэтому локальные переменные ARB и переменные окружения появляются в отдельных списках.
Средства управления для переменного отражения, что тип данных переменной, независимо от того как сложный тип (см. рисунок 2-4). Можно использовать средства управления для ручного изменения значения, или можно выбрать Animate для автоматического варьирования универсальной формы от одного значения до другого. Независимо от того, который Вы выбираете, Вы получите непосредственную обратную связь путем рассмотрения представления Render пока автоматическая компиляция, и автоматические опции ссылки включены.
Создание программ построения теней
Чтобы создать программу построения теней и удостовериться, это работает правильно, выполните эти шаги:
Откройте OpenGL Shader Builder.
Добавьте исходный код шейдера.
Если Вы уже записали исходные файлы программы построения теней, нажмите Add Shaders. Затем перейдите к файлам, которые Вы хотите добавить к списку файлов и выбрать их.
Если Вы хотите ввести исходный код, выбрать File> New и затем выбрать тип программы построения теней, Вы хотите записать. Файл исходного кода открывается в его собственном окне. Можно изменить код по умолчанию, предоставленный в шаблоне.
Проверьте Журнал Ссылки для проверки программ, соединенных успешно. Вы могли бы также хотеть проверить результаты ссылки.
По умолчанию Разработчику Программы построения теней OpenGL включили автоматическое соединение. Если Вы отключили эту опцию, необходимо будет включить ее или щелкнуть по Кнопке ссылки.
Если ссылка перестала работать, проверьте, чтобы удостовериться, что Вы добавили все необходимые исходные файлы. Например, если Вы добавляете фрагмент или программу геометрии, не добавляя связанную программу вершины, соединяя сбои.
В представлении Textures добавьте любые текстуры, которые являются подходящими для Вашей программы построения теней.
Вы наиболее вероятно захотите заменить текстуру по умолчанию.
В представлении Symbol анимируйте один или больше универсальных переменных.
В представлении Render выберите геометрию из всплывающего меню.
Можно перетащить указатель для перемещения представленного изображения.
После того, как Ваша программа построения теней работает, можно хотеть протестировать ее производительности в сравнении с эталоном.
Проверка производительности программы построения теней
Это - хорошая идея проверить частоту кадров Вашей программы построения теней прежде и после внесения изменений в код. Можно измерить частоту кадров путем выполнения этих шагов:
В представлении Render нажмите Benchmark.
Окно сравнительного теста открывается.
Введите номер секунд для эталонного тестирования. Затем нажмите Run.
Отметьте прошедшее время и кадры в секунду.
Если бы Вы находите, что частота кадров намного ниже, чем Вы хотели бы, проверьте, чтобы видеть, выполняете ли Вы:
Задачи в цикле, такие как установка состояния, которое должно действительно быть выполнено вне цикла
Сложные вычисления, такие как arcsin. Можно улучшить производительность путем предварительного вычисления результатов и хранения их в текстуре. Затем когда Вы нуждаетесь в результате, выполняете работу поиска текстуры вместо сложного вычисления.
После того, как Вы уверены, что Ваша программа построения теней выполняет хорошо в изоляции, необходимо добавить его к приложению OpenGL. Затем используйте Профилировщика OpenGL, чтобы удостовериться что Ваша программа построения теней и окружающее выполнение приложения OpenGL максимально оптимально.
Для получения информации идентифицируя и решая проблемы производительности с приложениями OpenGL, см. Руководство пользователя Профилировщика OpenGL.
Поиск и устранение неисправностей ошибок
Программы построения теней могут иметь ошибки проверки по ряду причин. Вы захотите быть знакомыми с расширениями OpenGL, применяющимися к типу программы GPU, которую Вы пишете, потому что каждое расширение обрисовывает в общих чертах условия, которые могут вызвать такие ошибки. Этот раздел обеспечивает инструкции для нескольких распространенных ошибок.
Удостоверьтесь что Ваши универсальные переменные кодовых наборов для сэмплеров во время проверки.
Если Ваш код будет зависеть от поддержки определенных функций, удостоверьтесь, что Вы добавляете директиву для требования надлежащего расширения, то иначе код не проанализирует.
Если программа построения теней геометрии перестала работать, проверьте, чтобы видеть, применяется ли какое-либо следующее:
Программа геометрии не имеет никакой связанной программы вершины для предоставления переменных переменных.
Вы использовали неправильные типы ввода или вывода. Программы построения теней геометрии используют фиксированные типы примитивов ввода и вывода.
Значение
GEOMETRY_VERTICES_OUT_EXT
0
.
Можно иногда диагностировать ошибки путем исследования правильно написанного кода и сравнения его с нашим собственным. Можно хотеть смотреть на следующее:
GLSLShowpiece и другой пример кода это доступно через Ссылочную Библиотеку ADC.
Пример кода это доступно на http://www .opengl.org/.