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


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

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

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

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

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

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

Модель освещения Ламбера

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

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

Создать шейдера Ламберта

  1. Создайте текстуры DGSL для работы с.Дополнительные сведения о добавлении текстуры DGSL к проекту см. в подразделе " начало работы " в Конструктор шейдеров.

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

  3. Добавление узла Ламберт к диаграмме.В разделе Панель элементов в области Служебная программа выберите Ламберт и переместите ее на поверхность разработки.Узел Ламбера вычисляет полный диффузный вклад цвета пикселя, основываясь на сопутствующих и диффузных параметрах освещения.

  4. В узел Цвет точки в узле Ламберт.В режиме Выбрать переместите терминал RGB узла Цвет точки в терминалу Диффузный цвет узла Ламберт.Это подключение предоставляет узел Ламбера с интерполированным диффузным цвета пикселя.

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

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

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

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

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

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

На следующей иллюстрации показан описанный в этом документе шейдер, примененный к трехмерной модели.

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

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

См. также

Задачи

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

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

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

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

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

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

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