Введение
Интерполяционная техника для затенения поверхности.
Интерполяция нормалей по Фонгу для затенения поверхности.
Phong's normal vector interpolation technique for surface shading
В 3D-компьютерной графике, затенение Фонга, интерполяция Фонга или интерполяция векторов нормалей – это интерполяционная техника для затенения поверхности, изобретенная пионером компьютерной графики Буи Туонг Фонгом. Затенение Фонга интерполирует векторы нормалей поверхности по растрированным полигонам и вычисляет цвета пикселей на основе интерполированных нормалей и модели отражения. Затенение Фонга также может относиться к конкретной комбинации интерполяции Фонга и модели отражения Фонга.
История
Фонг-затенение и модель отражения Фонга были разработаны Буи Туонг Фонгом в Университете Юты, который опубликовал их в своей докторской диссертации 1973 года и в статье 1975 года. Методы Фонга считались радикальными на момент их появления, но впоследствии стали фактически стандартным методом затенения для многих приложений рендеринга. Популярность методов Фонга обусловлена их, как правило, эффективным использованием вычислительного времени на отрендеренный пиксель.
Интерполяция Фонг
Фонговское затенение улучшает затенение Гуро и обеспечивает более точное приближение затенения гладкой поверхности. Фонговское затенение предполагает плавно изменяющийся вектор нормали поверхности. Метод интерполяции Фонга работает лучше, чем затенение Гуро, при применении к модели отражения с небольшими зеркальными бликами, такой как модель отражения Фонга. Наиболее серьезная проблема затенения Гуро возникает, когда зеркальные блики находятся в середине большого многоугольника. Поскольку эти блики отсутствуют в вершинах многоугольника, а затенение Гуро интерполирует цвета на основе цветов вершин, зеркальный блик будет отсутствовать внутри многоугольника. Эта проблема решается с помощью фонговского затенения. В отличие от затенения Гуро, которое интерполирует цвета по многоугольникам, в фонговском затенении вектор нормали линейно интерполируется по поверхности многоугольника от нормалей вершин многоугольника. Вектор нормали интерполируется и нормализуется для каждого пикселя, а затем используется в модели отражения, например, в модели отражения Фонга, для получения окончательного цвета пикселя. Фонговское затенение более ресурсоемко, чем затенение Гуро, поскольку модель отражения должна вычисляться для каждого пикселя, а не для каждой вершины. В современном графическом оборудовании варианты этого алгоритма реализуются с использованием пиксельных или фрагментных шейдеров.
Модель отражения Фонга
Теневое затенение (Phong shading) может также относиться к конкретной комбинации интерполяции Phong и модели отражения Phong, являющейся эмпирической моделью локального освещения. Она описывает способ отражения света поверхностью как комбинацию диффузного отражения от матовых поверхностей и зеркального отражения от глянцевых поверхностей. Модель основана на эмпирическом наблюдении Буй Туонг Фонга о том, что глянцевые поверхности характеризуются небольшими, но интенсивными зеркальными бликами, в то время как матовые поверхности имеют более крупные блики, спадающие более плавно. Модель отражения также включает в себя компонент рассеянного освещения для учета небольшого количества света, рассеянного по всей сцене.