Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Л_12,13.doc
Скачиваний:
4
Добавлен:
15.09.2019
Размер:
3.59 Mб
Скачать

Недостатки метода Гуро.

С помощью метода Гуро можно изображать только матовые поверхности, не имеющие зеркальных бликов (т.к. блик будет размазываться по поверхности и скроется). Действительно, в случае, когда блик расположен внутри грани и не доходит до вершин, зеркальная составляющая в вершинах равна нулю и, следовательно, блик не появится при интерполяции.

У метода Гуро есть еще один недостаток. Дело в том, что возникает классический оптический эффект (Mach banding): на границах четырехугольников человеческий глаз усиливает переходы и границы воспринимаются как светлые линии (это происходит из-за разрыва производной).

Желание устранить эти недостатки приводит нас к методу Фонга.

Метод Фонга (закраска с интерполяцией нормали)

Аналогичен методу Гуро, но при использовании метода Фонга для определе­ния цвета в каждой точке интерполируются не интенсивности отраженного света, а векторы нормалей.

  1. Определяются нормали к граням.

  2. По нормалям к граням определяются нормали в вершинах. В каждой точке закрашиваемой грани определяется интерполированный вектор нормали.

  3. По направлению векторов нормали определяется цвет точек грани в соот­ветствии с выбранной моделью отражения света.

Рассмотрим, как можно получить вектор нормали в каждой точке грани. Для интерполяции будем оперировать векторами , и , исходящими из центра координат плоскости проецирования и параллельными соответствующим нормалям , и в вершинах a, b и c.

Сначала найдем и

,

где – координаты векторов , и . Теперь найдем координаты вектора .

Вектор параллелен вектору N для нормали в точке (X,Y), поэтому его можно использовать для расчета отражения света та же, как и вектор нормали N.

Метод Фонга сложнее, чем метод Гуро. Для каждой точки (пикселя) поверхности необходимо выполнять намного больше вычислительных операций. Тем не менее, он дает лучшие результаты, в особенности при имитации зеркальных поверхностей.

Недостатки метода Фонга.

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

  • работая в плоскости экрана, мы проводим интерполяцию с одинаковыми приращениями, хотя правильнее было бы учитывать перспективное представление граней и использовать разные приращения.

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

  • при разбивке поверхности на четырехугольники надо учитывать, что, если точка является вершиной хотя бы одного четырехугольника, то она также должна быть вершиной всех четырехугольников, которым она принадлежит. Иначе можно столкнуться с ситуацией, где закраска грани 1 интерполируется по N1 и N3 без учета N2, в то время как при закраске граней 2 и 3 N2 учитывается. Это может привести к нежелательным визуальным эффектам.

  • В-четвертых, если нормали к смежным четырехугольникам очень быстро меняют направление, мы можем получить неправильную закраску.

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

Основные отличия будут в закрашивании передней грани. Она перпендикулярна направлению лучей света. Поэтому нормали в вершинах этой грани располагаются симметрично – они образовывают попарно рав­ные по абсолютной величине углы с лучами света. Для метода Гуро это обу­славливает одинаковые интенсивности в вершинах передней грани. А раз ин­тенсивности одинаковые, то и для любой точки внутри этой грани интенсив­ность одинакова (для линейной интерполяции). Это обуславливает единый цвет закрашивания. Все точки передней грани имеют одинаковый цвет, что, очевидно, неправильно. Метод Фонга дает правильное закрашивание. Если интерполировать векторы нормалей передней грани, то по центру будут интерполированные нормали, параллельные лучам света. По методу Фонга центр передней грани будет светлее, чем края.

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

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