Поделиться через


Практическое руководство. Создание простейшего шейдера освещения по методу Фонга

В этом документе показывается, как использовать конструктор шейдера и Язык шейдера направленного графа (DGSL) для создания шейдера освещения, реализующего классическую модель освещения Фонга.

Этот документ демонстрирует эти действия:

  • Добавление узлов в граф текстуры

  • Отключение узлы

  • Соединение узлов

Модель освещения Фонга

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

Дополнительные сведения о модели освещения Ламберта см. в разделе Практическое руководство. Создание простейшего шейдера освещения с использованием модели Ламберта.

Прежде чем приступать к, убедитесь, что отображаются в окне Свойства и Панель элементов.

как Создать шейдер Фонга

  1. Создайте текстуры Ламбера, как описано в разделе Практическое руководство. Создание простейшего шейдера освещения с использованием модели Ламберта.

  2. Отключите узел Ламберт из узла Окончательный цвет.Выберите терминал RGB узла Ламберт, а затем выберите Разорвать связи.Это позволяет место для узла, который добавляется в следующем шаге.

  3. Добавьте узел Добавить на диаграмму.В Панель элементов выберите Математика, выберите Добавить и перемещает его в область конструктора.

  4. Добавление узла Отражающий к диаграмме.В разделе Панель элементов в области Служебная программа выберите Отражающий и переместите ее на поверхность разработки.

  5. Добавьте отражающий вклад.Переместите терминал Вывод узла Отражающий в терминалу X узла Добавить, а затем переместите терминал Вывод узла Ламберт в терминалу Y узла Добавить.Эти подключения объединяются добавления итога диффузные и отражающие для цвета пикселя.

  6. Присоедините вычисленное значение цвета к окончательному цвету.Переместите терминал Вывод узла Добавить в терминалу RGB узла Окончательный цвет.

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

ПримечаниеПримечание

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

Граф шейдера и предварительный просмотр его эффекта.

Некоторые фигуры могут предоставить лучший предварительный просмотр для некоторых шейдеров.Дополнительные сведения о просмотре текстуры в конструкторе текстуры предварительный просмотр см. в разделе Конструктор шейдеров шейдеров

На следующей иллюстрации показан описанный в этом документе шейдер, примененный к трехмерной модели.Свойство MaterialSpecular установлено равным (1,00, 0,50, 0,20, 0,00), а его свойство MaterialSpecularPower равно 16.

ПримечаниеПримечание

Свойство MaterialSpecular определяет явное качество поверхности поверхностного материала.Область с высоким блеском, такая как стекло или пластик имеет тенденцию к отражающему цвету, представляющему собой яркий оттенок белого.Металлическая поверхность склонна иметь отражающий цвет, близкий к ее диффузному цвету.Глянцевая область склонна иметь отражающий цвет, представляющий собой темный оттенок серого.

Свойство MaterialSpecularPower определяет, насколько интенсивными являются зеркальные отражения.Высокие отражающие степени двух тускловатое, более локализованный ситуации.Очень низкого отражающие степени двух интенсивное, сняв выделение, которое может oversaturate и скрыть цвет поверхности целиком.

Применение к модели освещения по методу Фонга.

Дополнительные сведения о применении построителя текстуры к трехмерной модели см. в разделе Практическое руководство. Применение шейдера к трехмерной модели.

См. также

Задачи

Практическое руководство. Применение шейдера к трехмерной модели

Практическое руководство. Экспорт шейдера

Практическое руководство. Создание простейшего шейдера освещения с использованием модели Ламберта

Основные понятия

Конструктор шейдеров

Другие ресурсы

Узлы конструктора шейдеров