Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
graph.doc
Скачиваний:
13
Добавлен:
02.02.2015
Размер:
247.3 Кб
Скачать

6.5. Метод Фонга

В методе закраски, разработанном Фонгом, используется интерполяция вектора нормали  к поверхности вдоль видимого интервала на сканирующей строке внутри многоугольника, а не интерполяция интенсивности. Интерполяция выполняется между начальной и конечной нормалями, которые сами тоже являются результатами интерполяции вдоль ребер многоугольника между нормалями в вершинах. Нормали в вершинах, в свою очередь, вычисляются так же, как в методе закраски, построенном на основе интерполяции интенсивности.

В каждом пикселе вдоль сканирующей строки новое значение интенсивности вычисляется с помощью любой модели закраски. Заметные улучшения по сравнению с интерполяцией интенсивности наблюдаются в случае использования модели с учетом зеркального отражения, так как при этом более точно воспроизводятся световые блики. Однако даже если зеркальное отражение не используется, интерполяция векторов нормали приводит к более качественным результатам, чем интерполяция интенсивности, поскольку аппроксимация нормали в этом случае осуществляется в каждой точке. При этом значительно возрастают вычислительные затраты.

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

Закраска Фонга требует больших вычислительных затрат, однако она позволяет разрешить многие проблемы метода Гуро. При закраске Гуро вдоль сканирующей строки интерполируется значение интенсивности, а при закраске Фонга - вектор нормали. Затем он используется в модели освещения для вычисления интенсивности пиксела. При этом достигается лучшая локальная аппроксимация кривизны поверхности и, следовательно, получается более реалистичное изображение. В частности, правдоподобнее выглядят зеркальные блики.

При закраске Фонга аппроксимация кривизны поверхности производится сначала в вершинах многоугольников путем аппроксимации нормали в вершине. После этого билинейной интерполяцией вычисляется нормаль в каждом пикселе. Например, снова обращаясь к рис. 11.10, получаем нормаль в Q линейной интерполяцией между A и B, в R - между B и C и, наконец, в P - между Q и R. Таким образом:

где

u=AQ/AB, w=BR/BC, t=QP/QR.

Нормаль вдоль сканирующей строки опять можно выразить через приращение, т. е.

где индексы 1 и 2 указывают на расположение пискелов на строке.

На рис. 11.12 сравниваются однотонная закраска (слева), закраска Гуро (в центре), Фонга (справа). Модель освещения для левого и среднего торов включает рассеянный свет и диффузное отражение (уравнение (11.1)), а для правого - также зеркальное отражение, благодаря которому появляются блики (уравнение (11.5) сd=0, K=1). На рис. 11.13 сравниваются зеркальные блики при закраске Гуро и более реалистичной закраске Фонга.

Рис. 11.12. Сравнение методов закраски: слева - однотонная, в центре - Гуро, справа - Фонга.

   a                                                    b

Рис. 11.13. Сравнение зеркальных бликов: (а) закраска Гуро, (b) Фонга.

Хотя метод Фонга устраняет большинство недостатков метода Гуро, он тоже основывается на линейной интерполяции. Поэтому в местах разрыва первой производной интенсивности заметен эффект полос Маха, хотя и не такой сильный, как при закраске Гуро. Однако, как показал Дафф, иногда этот эффект проявляется сильнее у метода Фонга, например для сфер. Кроме того, оба метода могут привести к ошибкам при изображении невыпуклых многоугольников, например, таких, как на рис. 11.14. Первая сканирующая строка использует данные из вершин QRS, а вторая, лежащая ниже, берет также данные вершиныP. Это может нарушить непрерывность закраски.

Рис. 11.14. Нарушение непрерывности закраски для невыпуклого многоугольника.

Также возникают трудности, когда любой из этих методов применяется при создании последовательности кинокадров. Например, закраска может значительно изменяться от кадра к кадру. Это происходит из-за того, что правило закраски зависит от поворотов, а обработка ведется в пространстве изображения. Поэтому, когда от кадра к кадру меняется ориентация объекта, его закраска (цвет) тоже изменяется, причем достаточно заметно. Дафф предлагает метод закраски Гуро и Фонга, инвариантный относительно поворота.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]