Отраженное освещение

Зеркальное освещение определяет яркие зеркальные блики, которые возникают, когда свет попадает на поверхность объекта и отражается обратно в сторону камеры. Отраженное освещение более интенсивно, чем рассеянный свет, и быстрее ослабевает на поверхности объекта. На расчет отраженного освещения уходит больше времени чем на рассеянное освещение, однако его применение добавляет поверхности больше заметных деталей.

Для моделирования отражения света система должна знать направление перемещения света и направление на глаз наблюдателя. Система использует упрощенную версию модели отражения света Фонга, в которой применяется вектор полупути для аппроксимации интенсивности отраженного света.

В состоянии освещения по умолчанию блики отражения не рассчитываются.

Уравнение отраженного света

Отраженный свет описывается следующим уравнением.

Зеркальное освещение = Cs * sum[Ls * (N · H)P * Atten * Spot]

Переменные, их типы и диапазоны, задаются следующим образом.

Параметр Значение по умолчанию Тип Описание
Cₛ (0,0,0,0) Красный, зеленый, синий цвет и альфа-прозрачность (значения с плавающей запятой) Отраженный цвет.
Sum Н/Д Н/Д Суммирование каждого компонента отраженного света.
Нет Н/Д Трехмерный вектор (значения с плавающей запятой x, y и z) Вершина нормали.
H Н/Д Трехмерный вектор (значения с плавающей запятой x, y и z) Вектор полупути. См. раздел по вектору полупути.
P 0,0 С плавающей запятой Сила отраженного света Диапазон от 0 до +бесконечность
Lₛ (0,0,0,0) Красный, зеленый, синий цвет и альфа-прозрачность (значения с плавающей запятой) Цвет отраженного света.
Atten Н/Д С плавающей запятой Значение ослабления света. См. раздел Коэффициент затухания и вспышки.
Немедленная оплата. Н/Д С плавающей запятой Коэффициент узкой направленности света. См. раздел Коэффициент затухания и вспышки.

 

Значение для Cₛ — либо:

  • цвет вершины 1, если источником материала отражения является цвет вершины рассеяния и цвет первой вершины указан в объявлении вершины.
  • цвет вершины 2, если источником материала отражения является цвет вершины отражения и цвет второй вершины указан в объявлении вершины.
  • цвет отражения материала

Примечание Если используется любой из вариантов источника зеркального материала, а цвет вершины не указан, то используется цвет отражения материала.

 

Компоненты отражения ужимаются до диапазона 0-255, после отдельной обработки и интерполяции всех источников света.

Вектор половины пути

Вектор полупути (H) существует посередине между двумя векторами: вектором из вершины объекта к источнику света и вектором из вершины объекта к положению камеры. Direct3D предоставляет два способа расчета вектора полупути. Если включены блики, рассчитываемые относительно камеры (вместо ортогональных бликов), система вычисляет вектор полупути, используя позицию камеры и позицию вершины совместно с вектором направления света. Это демонстрируется в следующей формуле:

H = norm(norm(Cₚ - Vₚ) + Ldir)

 

Параметр Значение по умолчанию Тип Описание
Cₚ Н/Д Трехмерный вектор (значения с плавающей запятой x, y и z) Позиция камеры.
Vₚ Н/Д Трехмерный вектор (значения с плавающей запятой x, y и z) Положение вершины.
Ldir Н/Д Трехмерный вектор (значения с плавающей запятой x, y и z) Вектор направления из положения вершины к позиции источника освещения.

 

Нахождение вектора полупути таким образом может быть затратно в плане вычислений. В случае когда применяются ортогональные блики (вместо бликов относительно камеры), система действует так, будто точка наблюдения бесконечно удалена по оси z. Это отражено в следующей формуле.

H = norm((0,0,1) + Ldir)

Этот вариант требует меньше вычислений, но он гораздо менее точен, поэтому лучше всего применять его в приложениях с ортогональной проекцией.

Примере

В этом примере объект расцвечивается с помощью цвет отраженного света сцены и цвета отражения материала.

Согласно уравнению, получившийся цвет для вершин объекта — это сочетание цвета материала и цвета света.

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

Изображение серогошара с изображением белого шара

Итоговый блик показан на следующей иллюстрации.

Иллюстрация блика

Объединение блика с рассеянным и общим светом дает следующий результат. Применение всех трех типов освещения дает более реалистичное изображение объекта.

Иллюстрация сочетания бликов, общего и рассеянного света

Отраженный свет требуют больше вычислительных ресурсов, чем рассеянный свет. Обычно он применяется для предоставления визуальных подсказок о материале поверхности. Блики варьируются по размеру и цвету для разных материалов поверхности.

Математические аспекты освещения