Практическое руководство. Создание простейшего шейдера освещения с использованием модели Ламберта
В этом документе показывается, как использовать конструктор шейдера и Язык шейдера направленного графа (DGSL) для создания шейдера освещения, реализующего классическую модель освещения Ламберта.
Этот документ демонстрирует эти действия:
Добавление узлов в граф текстуры
Отключение узлы
Соединение узлов
Модель освещения Ламбера
Модель освещения Ламбера включает внешнее и направленное освещение для затенения объектов в трехмерной сцене.При этом компоненты содержат базовый уровень освещения в трехмерной сцены.Направленные компоненты предоставляют дополнительные освещение из дирекционных () далеких источников света.Внешнее освещение влияет на все области в сцене одинаково, независимо от их ориентации.Для данной поверхности, это будет произведением окружающего цвета поверхности и цвета и интенсивности окружающего освещения в сцене.Направленное освещение влияет на каждую поверхность сцены по-разному, в зависимости от направленности поверхности относительно направленности источника света.Продукт диффузных цвета и ориентации поверхности и цвет, интенсивность и направление источников света.Поверхности, обращенные непосредственно к источнику света, получают максимальный вклад, а поверхности, обращенные непосредственно от него, не получают никакого вклада.В модели освещения, Ламбера окружающий компонент и один или несколько направленные компоненты объединяются для определения всех диффузный вклад цвета для каждой точки в объекте.
Прежде чем приступать к, убедитесь, что отображаются в окне Свойства и Панель элементов.
Создать шейдера Ламберта
Создайте текстуры DGSL для работы с.Дополнительные сведения о добавлении текстуры DGSL к проекту см. в подразделе " начало работы " в Конструктор шейдеров.
Отключите узел Цвет точки из узла Окончательный цвет.Выберите терминал RGB узла Цвет точки, а затем выберите Разорвать связи.Оставьте алфавит терминал подключении.
Добавление узла Ламберт к диаграмме.В разделе Панель элементов в области Служебная программа выберите Ламберт и переместите ее на поверхность разработки.Узел Ламбера вычисляет полный диффузный вклад цвета пикселя, основываясь на сопутствующих и диффузных параметрах освещения.
В узел Цвет точки в узле Ламберт.В режиме Выбрать переместите терминал RGB узла Цвет точки в терминалу Диффузный цвет узла Ламберт.Это подключение предоставляет узел Ламбера с интерполированным диффузным цвета пикселя.
Присоедините вычисленное значение цвета к окончательному цвету.Переместите терминал Вывод узла Ламберт в терминалу RGB узла Окончательный цвет.
На следующей иллюстрации показан готовый граф шейдеров и предварительный просмотр шейдера, применяемого к модели чайника.
![]() |
---|
Лучше демонстрируется эффект текстуры на этом рисунке, оранжевый цвет определено, что с помощью параметра MaterialDiffuse текстуры.Игра или приложения могут использовать этот параметр, чтобы указать цвет уникальное значение для каждого объекта.Дополнительные сведения о материальных параметрах см. в разделе шейдеров предварительный просмотр в Конструктор шейдеров. |
Некоторые фигуры могут предоставить лучший предварительный просмотр для некоторых шейдеров.Дополнительные сведения о просмотре текстуры в конструкторе текстуры см. в разделе шейдеров предварительный просмотр в Конструктор шейдеров.
На следующей иллюстрации показан описанный в этом документе шейдер, примененный к трехмерной модели.
Дополнительные сведения о применении построителя текстуры к трехмерной модели см. в разделе Практическое руководство. Применение шейдера к трехмерной модели.
См. также
Задачи
Практическое руководство. Применение шейдера к трехмерной модели
Практическое руководство. Экспорт шейдера
Практическое руководство. Создание простейшего шейдера освещения по методу Фонга