Затемнение Фонга
Затемнение Фонга — метод отрисовки полигональных моделей.
Модели обычно задаются набором плоских выпуклых граней. Существует несколько простых методов рендеринга: метод плоского (постоянного) закрашивания, метод Гуро и метод Фонга.
Гладкий объект от негладкого отличается тем, что на его поверхности можно задать непрерывное поле единичных векторов нормали. Для искусственного построения используется билинейная интерполяция не к значениям освещенности (как в методе Гуро), а к значениям векторов нормали, что помогает достичь более реалистичных результатов.
В качестве модели освещенности в точке обычно используются следующие модели:
<math>I=K_aI_a+K_d(n,l)\,\!</math>
или
<math>I=K_aI_a+K_d(n,l)+K_s(n,h)^p\,\!</math>
где
<math>n\,\!</math> — вектор нормали
<math>l\,\!</math> — направление проецирования
<math>K_a\,\!</math> — коэффициент фонового освещения
<math>K_s\,\!</math> — коэффициент зеркального освещения
<math>K_d\,\!</math> — коэффициент диффузного освещения
Метод Фонга требует намного больше вычислений, чем метод Гуро, так как вычисления вектора нормали и освещенности производятся отдельно в каждой точке. Методы Гуро и Фонга используют значения параметров в предыдущей точке для вычисления значений параметров в следующей.
Методы Гуро и Фонга используют только векторы нормали, заданные в вершинах грани. Для нахождения вектора нормали в вершине используют нормированную взвешенную сумму векторов нормали граней, которым эта вершина принадлежит:
<math>n=\frac{a_1 n_1+...+a_k n_k}{\left \Vert a_1 n_1+...+a_k n_k\right\|}</math>