Модели закрашивания
Существует несколько моделей закрашивания плоских граней.
На закрашивание грани в общем случае влияют направления четырех векторов: нормали к плоскости грани (), направления на источник света (
), направления идеального зеркального отражения (
) и направления на наблюдателя (
). При переходе от одной точки плоской грани к другой направление вектора
остается постоянным, изменяются только вектора
,
и
. Однако, в случае удаленного источника света и далеко расположенного наблюдателя этими изменениями можно пренебречь.
Это свойство используется в самой простой модели плоского закрашивания, когда освещенность одной, произвольной точки грани, принимают за освещенность всей грани, т.е. грань закрашивается равномерно. Недостаток этого метода – резкие переходы цвета между соседними гранями.
Резкость цветовых переходов дополнительно увеличивается из-за возникновения т.н. полос Маха, когда светлая грань вблизи ее границы с более темной гранью субъективно воспринимается глазом человека еще светлее, чем она есть на самом деле. На темной грани вблизи ее границы с более светлой гранью, наоборот, создается иллюзия более темной полосы.
Для сглаживания полос Маха применяются закрашивание, основанное на интерполяции интенсивности (метод Гуро), и закрашивание, основанное на интерполяции нормали (метод Фонга), .
При закрашивании методом Гуро интенсивность освещенности определяется отдельно для каждой вершины грани. Освещенность вдоль ребер грани интерполируется от значения освещенности в начальной вершине ребра до значения освещенности в конечной вершине. Поверхность грани закрашивается горизонтальными отрезками с изменяющейся интенсивностью освещенности (интенсивность освещенности в начальной и конечной точках каждого отрезка была определена при закраске ребер грани).
Значения освещенности в вершинах грани определяются для осредненного значения нормали. Нормаль в вершине получается при усреднении значений нормалей всех сходящихся в этой вершине граней. При k сходящихся в вершине граней и единичной длине векторов нормалей усредненное значение нормали в вершине:
.
Закраска методом Гуро позволяет визуально сгладить переходы между гранями, однако в некоторых случаях не удается избежать появления полос Маха.
При закрашивании граней методом Фонга также вычисляются усредненные значения нормалей в вершинах, однако при закраске поверхности грани интерполируются не значения освещенности, а значения нормалей в каждой точке, и лишь потом вычисляется освещенность.
Закрашиванием объектов можно передать иллюзию глубины пространства или эффект тумана.
В природе контуры отдаленных объектов кажутся наблюдателю размытыми, затуманенными. Этот эффект можно смоделировать в процессе закраски объектов. Для этого среда, в которой находятся объекты, формируется полупрозрачной. Итоговый цвет объекта С рассчитывается по формуле:
C = f Co + (1 – f) Cf,
где Co – исходный цвет объекта, рассчитанный с учетом его освещенности, Cf – цвет полупрозрачной среды (тумана), f – функция туманности, которая зависит от расстояния между объектом и наблюдателем.
Для передачи глубины пространства используют линейную функцию туманности, для создания эффекта тумана – нелинейную (экспоненциальную и т.п.).