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

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

Глобальная освещенность вычисляется следующим образом:

global_illumination = ambient_lighting + diffuse_lighting + specular_lighting + emissive_lighting;

Фоновое освещение — это постоянное освещение. Внешнее освещение является константой во всех направлениях и окрашивает все пиксели объекта одинаково. Вычислить такое освещение очень быстро, однако объекты выглядят плоскими и нереалистичными.

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

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

Излучаемое освещение — это свет, излучаемый объектом, например, свечение. Излучаемое освещение делает отрисованный объект светящимся. Излучение влияет на цвет объекта и может, например, сделать темный материал ярче и частично перенять излучаемый цвет.

Реалистичного освещения можно достичь путем применения каждого из этих типов освещения в трехмерных сценах. Значения, рассчитанные для фонового, излучаемого и рассеянного компонентов, выводятся как рассеянный цвет вершины, а значение для отраженного компонента освещения выводится как отраженный цвет вершины. Значения фонового, рассеянного и отраженного освещения могут меняться в зависимости от коэффициента затухания и узкой направленности источника. См. раздел Коэффициент затухания и вспышки.

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

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

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

В этом разделе

Раздел Описание

Внешнее освещение

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

Рассеянное освещения

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

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

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

Эмиссионное освещение

Излучаемое освещение — это свет, излучаемый объектом, например, свечение. Излучаемое освещение делает отрисованный объект светящимся. Излучение влияет на цвет объекта и может, например, сделать темный материал ярче и частично перенять излучаемый цвет.

Преобразования пространства камеры

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

Коэффициент затухания и вспышки

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

 

Источники света и материалы