Текстуры и заливки.
Если при построении полигональной поверхности для каждой грани используется по одной нормали, то модель освещения создает изображение, состоящее из отдельных многоугольников. С помощью методов закраски (заливки) можно получить сглаженное изображение.
Одним из таких методов является метод Гуро. Метод Гуро используется для равномерной заливки граней. Для того чтобы изобразить объект методом построчного сканирования, нужно в соответствии с моделью освещения рассчитать интенсивность каждого пикселя вдоль сканирующей строки. Нормали к поверхности аппроксемируются в вершинах многоугольников. Однако сканирующая строка не обязательно проходит через вершины многоугольника. При закраске Гуро сначала определяется интенсивность вершин многоугольника, а затем с помощью билинейной интерполяции вычисляется интенсивность каждого пиксела на сканирующей строке.
Заливка для диффузного отражения проводится так:
· Делим закрашиваемые грани на треугольники
· Находим нормали в вершинах треугольников
· Находим нормали в центрах треугольников
· Находим цвета в вершинах (как описано ниже)
Заливаем каждый треугольник по линейной интерполяции цветов в вершинах.
Рассмотрим, например, участок полигональной поверхности на Рис. 2.21. Значение интенсивности в точке P определяется линейной интерполяцией интенсивности в точках Q и R. Для получения интенсивности в точке Q — пересечении ребра многоугольника со сканирующей строкой — нужно линейной интерполяцией интенсивностей A и B найти интенсивность в точке Q:
IQ = uIA + (1 - u)IB, 0 <= u <= 1, где u = AQ/AB.
Рис. 2.21. Схема закраски по методу Гуро.
Аналогично для получения интенсивности R линейно интерполируются интенсивности в вершинах B и C, то есть:
IR = wIB + (1 - w)Ic, 0 <= w <= 1, где w = BR/BC.
Наконец, линейной интерполяцией по строке между Q и R находится интенсивность Р, то есть IP = tIQ + (1 - t)IR, 0 <= w <= 1, где t = QP/QR.
Значения интенсивности вдоль сканирующей строки можно вычислять инкрементально. Для двух пикселов в t1 и t2 на сканирующей строке:
IP2 = t2IQ + (1 - t2)IRIP1 = t1IQ + (1 - t1)IR.
Вычитая, получим, что вдоль строки:
IP2 = IP1 + (IQ - IR)(t2 - t1) = IP1 + DIDt.
Недостаток метода Гуро заключается в том, что он обеспечивает лишь непрерывность значений интенсивности вдоль границ многоугольников, но не обеспечивает непрерывности изменения интенсивности. Еще одна проблема метода Гуро состоит в том, что усреднение нормалей к многоугольникам, приводит к тому неправильно передается форма поверхностей.
Закраска Гуро лучше всего выглядит в сочетании с простой моделью с диффузным отражением, так как форма бликов при зеркальном отражении сильно зависит от выбора многоугольников, представляющих объект или поверхность.
Метод Фонга – второй рассматриваемый метод заливки, основная его идея состоит в том, что для каждой точки изображения устанавливаются пространственные координаты, исходя из которых, считается яркость для точки. Основной недостаток метода – большая сложность вычислений.
Хотя метод Фонга устраняет большинство недостатков метода Гуро, он тоже основывается на линейной интерполяции. Поэтому в местах разрыва первой производной интенсивности заметен эффект полос Маха, хотя и не такой сильный, как при закраске Гуро. Однако, иногда этот эффект проявляется сильнее у метода Фонга, например для сфер. Кроме того, оба метода могут привести к ошибкам при изображении невыпуклых многоугольников (Рис. 2.22).
Рис. 2.22. Однотонная закраска (слева), закраска Гуро (в центре), Фонга (справа).
Также возникают трудности, когда любой из этих методов применяется при создании последовательности кинокадров. Например, закраска может значительно изменяться от кадра к кадру. Это происходит из-за того, что правило закраски зависит от поворотов, а обработка ведется в пространстве изображения. Поэтому, когда от кадра к кадру меняется ориентация объекта, его закраска (цвет) тоже изменяется, причем достаточно заметно. Было предложен метод закраски Гуро и Фонга, инвариантный относительно поворота.
Скачано с www.znanio.ru
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.