Локальная модель освещенности

Июнь 23, 2010 в категории Статьи

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

Фоновая освещенность

Локальная модель освещенности учитывает неявное Ambient-освещение, его еще называют фоновым (Background). Необходимость учета Ambient-освещения связана с тем, что его вклад может быть достаточно велик – до 50% от общей освещенности. В локальной модели освещенности считается, что фоновое освещение задает цвет (и его интенсивность) объекта в отсутствии явных источников света или в тени. Интенсивность такого освещения постоянна и равномерно распределена во всем пространстве, расчет его отражения поверхностью выполняется по формуле:

Iamb = ka·Ia,

где Iamb — интенсивность отраженного Ambient-освещения, ka — коэффициент, характеризующий отражающие свойства поверхности для Ambient-освещения (его значение находится в пределах от 0 до 1), Ia — исходная интенсивность Ambient — освещения, падающего на поверхность.

Увидеть этот тип освещения в «чистом виде» в 3ds Max можно, включив в настройках Advanced Effects источника света свойство Ambient Only (рис. 1). Другой способ – это изменить цвет Ambient Light панели Environment and Effects c черного (черный означает отсутствие окружающего освещения, принят по умолчанию) на более светлый и отключить в свитке Advanced Effects настроек источника света параметры Diffuse, Specular и Ambient Only.

Рис. 1

Диффузное отражение.

Часть света от прямых источников зеркально отражается поверхностью, а остальной свет диффузно рассеивается во всех направлениях (рис. 2).

Рис. 2

Интенсивность рассеянного света зависит от угла падающего на поверхность света (рис. 3) и вычисляется по закону Ламберта:

Idiff=Id·kdiff·cos(θ),

где Id — интенсивность падающего на поверхность света, kdiff — коэффициент, характеризующий рассеивающие свойства поверхности (его значение изменяется в пределах от 0 до 1), cos(θ) — угол между направлением на источник света и нормалью поверхности.

Рис. 3

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

Диффузно рассеянный свет является главным источником визуальной информации о геометрии трехмерных объектов. В 3ds Max диффузное отражение света можно увидеть, отключив Specular в свойствах источников света (свиток Advanced Effects) (рис. 4). Второй способ достичь того же результата – установить черный цвет для Specular в свойствах материала и для Ambient в панели Environment and Effects.

Рис. 4

Зеркальное отражение

Кроме чисто зеркального отражения, которое имеют идеально отполированные поверхности, различают так называемое Glossiness или распределенное зеркальное отражение – отражение в некотором створе углов, а не на один единственный угол (рис. 5).

Рис. 5

Такое рассеяние света обусловлено микрорельефом («шероховатостью») поверхности, так как поверхность реальных объектов не является идеально гладкой, а состоит из большого количества микровыступов и впадин, которые зеркально отражают падающий свет под разными углами. Результатом glossy-отражения является Specular Highlight – яркий световой блик, размер которого зависит от степени шероховатости поверхности. Для большинства реальных материалов всегда видна зеркальная подсветка в форме светового пятна, а не в форме яркой точки. Поэтому для расчета интенсивности зеркально отраженного света используется формула, предложенная Фонгом:

Ispec=Is·ks·cosn(α),

где Ispec — интенсивность зеркально отраженного света, Is — интенсивность источника света, ks — коэффициент, характеризующий свойства зеркального отражения поверхности, α — угол между направлением идеального отражения и направлением на наблюдателя (рис. 6).

Рис. 6

Степень n определяет размер пятна светового блика – чем больше n, тем меньше световой блик, и тем ближе отражающие свойства поверхности к свойствам идеального зеркала (рис. 7).

Рис. 7

Формула Фонга не имеет физического смысла. Ее используют только потому, что она дает хорошие практические результаты.

Зеркальную подсветку в 3ds Max можно увидеть, установив черный цвет Diffuse color для материала и черный цвет Ambient light в панели Environment and Effects (рис. 8).

Рис. 8

В 3ds Max коэффициенту ks соответствует параметр Specular Level, n – параметр Glossiness группы настроек материала Specular Highlights (рис. 9).

Рис. 9

Расстояние до объекта

Чтобы различать объекты, находящиеся на разных расстояниях от камеры, используется функция затухания интенсивности света с расстоянием:

I(r)= I/r2.

Хотя на самом деле используется модифицированная формула, более приемлемая на практике:

I(r) = I/(a+br+cr2).

Расчетная формула

Таким образом, локальная модель освещенности предполагает расчет отраженной фоновой освещенности, диффузного и зеркального отражения от прямых источников:

Iполн=Iamb+(Idiff+Ispec)/(a+br+cr2)=
=ka·Ia+(Id·kdiff·cos(θ)+Is·ks·cosn(α)) /(a+br+cr2).

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

Источники:

  1. Сиваков И. http://www.3dmir.ru
  2. Горелик Александр. Основы моделирования и визуализации в 3ds Max (в упражнениях).

Редактор сайта

Реклама: