Закраска ФонгаПри закраске Гуро вдоль сканирующей строки интерполируется значение интенсивности, а при закраске Фонга вектор нормали. Затем он используется в модели освещения для вычисления интенсивности пиксела. При этом достигается лучшая локальная аппроксимация кривизны поверхности и, следовательно, получается более реалистичное изображение. В частности, правдоподобнее выглядят зеркальные блики. На рис. 26.1 сравниваются однотонная закраска (слева), закраска Гуро (в центре), Фонга (справа). Модель освещения для левого и среднего торов включает рассеянный свет и диффузное отражение, а для правого также зеркальное отражение, благодаря которому появляются блики. На рис. 26.2 сравниваются зеркальные блики при закраске Гуро и более реалистичной закраске Фонга. Хотя метод Фонга устраняет большинство недостатков метода Гуро, он тоже основывается на линейной интерполяции. Поэтому в местах разрыва первой производной интенсивности заметен эффект полос Маха, хотя и не такой сильный, как при закраске Гуро. Однако, иногда этот эффект проявляется сильнее у метода Фонга, например для сфер. Кроме того, оба метода могут привести к ошибкам при изображении невыпуклых многоугольников, например, таких, как на рис. 26.3. Первая сканирующая строка использует данные из вершин QRS, а вторая, лежащая ниже, берет также данные вершины P. Это может нарушить непрерывность закраски. Также возникают трудности, когда любой из этих методов применяется при создании последовательности кинокадров. Например, закраска может значительно изменяться от кадра к кадру. Это происходит из-за того, что правило закраски зависит от поворотов, а обработка ведется в пространстве изображения. Поэтому, когда от кадра к кадру меняется ориентация объекта, его закраска (цвет) тоже изменяется, причем достаточно заметно. Было предложен метод закраски Гуро и Фонга, инвариантный относительно поворота. Рассмотрим отличия трех методов закраски однотонной, Гуро и Фонга на примере. Закраска. Рассмотрим участок поверхности, изображенный на рис. 26.4 Уравнения четырех плоскостей: Пусть вектор к точке наблюдения есть S(1, 1, 1) и единственный точечный
источник расположен в бесконечности на положительной полуоси z, то есть вектор
падающего света равен L(0, 0, 1). Модель освещения задана уравнением Рассмотрим однотонную закраску. Точка P лежит в многоугольнике 3. Из
уравнения плскости многоугольника 3 находим нормаль Угол между нормалью и вектором падающего света есть Из уравнений для определения вектора отражения имеем: Единичный вектор наблюдения есть S' = S/|S| = 0.58i + 0.5j + 0.58k. С помощью этого значения найдем угол между вектором отражения и вектором
наблюдения: Модель освещения для точки P дает Для закраски Гуро необходимы векторы нормали в A, B и C на
рис. 26.4. Аппроксимируя их усреднением нормалей к
окружающим плоскостям, получаем: Единичные векторы отражения: Интенсивности в A, B и C равны На заданной сканирующей строке имеем u = AQ/AB = 0.4 и w = BR/BC = 0.7.
Интерполируя, находим интенсивность в Q и R: Точка P на сканирующей строке расположена в t = QP/QR = 0.5. Интерполируя,
определим интенсивность в Р: При закраске Фонга нормаль в P получается путем интерполяции нормалей в
A, B, C. Затем эта нормаль используется для вычисления интенсивности P.
Еденичные нормали в Q и R: Интерполируя нормаль вдоль сканирующей строки, находим: Тогда еденичный вектор отражения в P есть: Интенсивность в P равна Сравним различные методы закраски: |
||
|
|