netlib.narod.ru | < Назад | Оглавление | Далее > |
Как видно на рис. 3.1, в главном окне RenderMonkey располагается множество дополнительных окон! Их назначение достаточно понятно, и сейчас я опишу их одно за другим.
Рис. 3.1. RenderMonkey выполняет визуализацию простого шейдера
Я настоятельно рекомендую сейчас установить RenderMonkey и запустить его, чтобы следовать дальше. Благодаря этому вы сможете сами увидеть как работает RenderMonkey и исследовать его. Инструкции по установке RenderMonkey вы найдете в приложении B «Руководство пользователя RenderMonkey 1.5».
Первое и наиболее важное из всех окон — это окно рабочего пространства, расположенное в левой части главного окна приложения. Это та область, где вы будете собирать ваш шейдер, комбинируя различные элементы в итоговую структуру. Взглянув на увеличенное изображение на рис. 3.2, вы увидите, что в окне есть много различных типов элементов, которые могут быть объединены в четыре группы:
Группы элементов, служащие очевидной цели объединения элементов в иерархию. Примером могут служить группы эффектов, эффекты и проходы визуализации.
Параметры, определяющие используемые шейдером константы, такие как матрицы, векторы или цвета. Обсуждаемый далее художественный редактор может использоваться для установки данных параметров простым для пользователя способом.
Состояния, управляющие поведением шейдера или эффекта. Они состоят из кода шейдера, состояний аппаратуры визуализации или отображения данных потока вершин.
Формирующие данные ресурсы (обычно из внешнего источника), которые использует шейдер. Типичным примером являются текстуры и данные геометрии.
Рис. 3.2. Окно рабочего пространства в RenderMonkey
Чтобы построить шейдер просто поместите требуемый набор элементов в окно рабочего пространства; RenderMonkey сразу же покажет результат. Сейчас не следует волноваться о том, что делает каждый из элементов; мы обсудим их все в этой главе чуть позже. Пока вам достаточно знать, что рабочее пространство состоит из набора групп эффектов (effect group). Каждая группа эффектов, в свою очередь, состоит из набора эффектов (effect), каждый из которых может включать один или несколько проходов (pass). И, наконец, каждый проход визуализации содержит параметры, состояния и ресурсы, используемые шейдером.
Мы подошли ко второму по значимости окну RenderMonkey — окну предварительного просмотра, показанному на рис. 3.3. В этом окне вы видите плоды вашего труда. Здесь RenderMonkey рисует финальную версию вашего шейдера, основываясь на указанных вами элементах.
Рис. 3.3. Окно предварительного просмотра, показывающее результат работы простого шейдера
Используя клавиши мыши, вы можете вращать камеру вокруг объектов, что позволяет взглянуть на шейдер под любым углом. Правая кнопка мыши вызывает контекстное меню, позволяющее вернуть камеру в исходную позицию и выполнить ряд других задач, таких как отображение ограничивающих параллелепипедов для объектов и изменение масштаба изображения, чтобы объект полностью помещался на экране. С помощью кнопок, расположенных на панели инструментов, находящейся в верхней части главного окна RenderMonkey, вы можете изменить реакцию камеры на манипуляции с мышью. Ну и наконец, если вы не видите в окне предварительного просмотра то, что ожидали, проверьте окно отладки — нет ли там сообщений об ошибках в коде, и дважды проверьте код вашего шейдера на отсутствие логических ошибок.
Это очевидным образом приводит нас к окну отладки. Оно весьма полезно, особенно в том случае, если вы склонны допускать ошибки в коде! В этом окне RenderMonkey отображает сообщения об ошибках компиляции шейдера и другие полезные предупреждения о процессе сборки вашего шейдера. На рис. 3.4 показано, как может выглядеть выводимая в окно отладки информация.
Рис. 3.4. Информация, выводимая в окне отладки
Следующее окно в нашем исследовании RenderMonkey — это окно редактирования, которое отсутствует на рис. 3.1. В нем вы вводите код ваших шейдеров. В текущей версии RenderMonkey вы можете вводить код либо целиком на HLSL, либо, для вершинных и пиксельных шейдеров, на языке ассемблера. В этой книге я сосредотачиваюсь только на использовании высокоуровневого языка программирования шейдеров HLSL, поскольку он проще для изучения и понимания. HLSL проще еще и по той причине, что он позволяет сосредоточиться на процессе создания шейдера и меньше отвлекаться на такие незначительные детали, как оптимизация инструкций и распределение регистров.
Как видно на рис. 3.5, окно редактирования состоит из двух частей. В верхней части приводятся общие и вспомогательные параметры шейдера, такие как целевая версия шейдеров для компиляции и точка входа шейдера. В нижней части окна приведен исходный код шейдера в удобном для редактирования виде с подсветкой синтаксиса. Можно также обратить внимание на строку состояния внизу окна редактирования, где отображается статистическая информация о вашем шейдере, такая как количество инструкций и производительность.
Рис. 3.5. Окно редактирования в RenderMonkey
Последнее окно, которое мы должны рассмотреть — окно художника. Как видно на рис. 3.6, это окно облегчает работу художника, позволяя ему управлять параметрами шейдера не запачкав руки. Все параметры элемента, отмеченного в окне рабочего пространства, представлены здесь в виде набора полей редактирования, ползунков и панелей выбора цвета. Вы можете изменить любой из параметров и сразу же увидите результат. Это замечательная возможность для художников, позволяющая им экспериментировать с шейдерами и сразу же видеть результат до того, как шейдеры будут помещены в реальную программу.
Рис. 3.6. Окно художника
netlib.narod.ru | < Назад | Оглавление | Далее > |