Алгоритмы закраски Гуро и Фонга 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Алгоритмы закраски Гуро и Фонга



При использовании модели освещения для полигональной поверхности получают изображение, состоящее из отдельных многоугольников. Метод Гуро позволяет получить сглаженное изображение. При изображении объекта методом построчного сканирования можно рассчитать интенсивность каждого пиксела вдоль сканирующей строки. Для расчета интенсивности необходимо вычислить значение нормалей в вершинах многоугольников, которые зависят от плоскостей, примыкающих к этим вершинам. Уравнение плоскости в каноническом виде имеет вид ax + by + cz + d = 0. В соответствии с уравнениями для смежных плоскостей (в данном случае – трех) вектор нормали в вершине V рассчитывается по выражению

nv = (a0 +a1 +a2)*i + (b0 +b1 +b2)*j + (c0 +c1 +c2)*k,

где ai, bi, ci – коэффициенты уравнений плоскостей, примыкающих к вершине V. Если уравнения плоскостей не заданы, то вектор нормали можно рассчитать усреднением векторов нормалей для указанных плоскостей. В свою очередь вектора нормалей к плоскостям можно вычислить векторным произведением векторов, лежащих в этих плоскостях. В качестве таких векторов удобно использовать ребра соответствующих граней поверхности. Расчет интенсивности пикселей выполняется последовательно. Сначала выполняется расчет интенсивности в вершинах. Затем по интенсивности вершин вычисляются интенсивности необходимых точек ребер граней. На заключительном вычисляются интенсивности отдельных пикселей. Например, для рисунка, приведенного ниже, последовательность вычислений будет следующей.

Вычисляется освещенность в вершинах полигонов. Например, для грани 1 – в вершинах A, B, C и D (Ia, Ib, Ic, Id).

Линейная аппроксимация интенсивностей вершин A и B позволяет определить интенсивность в любой точке ребра AB. Расчет интенсивности в точке Q выполняется по выражению

IQ = u*IA + (1 – u)*IB, где u = QB/AB. Причем 0 ≤ u ≤ 1.

Аналогично, по интенсивностям в вершинах В и С можно вычислить интенсивность в произвольной точке ребра ВС. IR = w*IR + (1 – w)*IC, где w = RC/BC. Коэффициент w также удовлетворяет условию 0 ≤ w ≤ 1. Вычисленные интенсивности в точках Q и R позволяют вычислить интенсивность в произвольной точке Р грани, расположенной на сканирующей строке, выполнив вторичную линейную аппроксимацию. IP = t*IQ + (1 – t)*IR, где t = PR/QR. Коэффициент t удовлетворяет условию 0 ≤ t ≤ 1. Вычисление интенсивностей точек вдоль сканирующей строки можно упростить. Для этого, например, для точек Р1 и Р2 вычисляются интенсивности

IP1 = t1*IQ + (1 – t1)*IR, IP2 = t2*IQ + (1 – t2)*IR, где t1 = P1R/QR, t2 = P2R/QR.

Тогда IP2 - IP1 = (t2 – t1)*IQ – (t2 – t1)*IR = (t2 – t1)* (IQ – IR) = Δt*ΔI.

Таким образом, если известна интенсивность в точке Р1, то интенсивность в точке Р2 определяется по простому выражению IP2 = IP1 + Δt*ΔI. А если расчет идет от точки к точке с шагом 1, то второй член выражения становится константой ΔI/QR. Данный метод закраски имеет недостаток в виде появления эффекта «полос Маха», который проявляется в изменении интенсивности при фактически постоянной освещенности. Возможны и другие нежелательные эффекты. Например, грани поверхности ориентированы в пространстве по-разному, но так что их нормали в вершинах дают одинаковый результат. Тогда величина ΔI будет иметь нулевое значение и, следовательно, интенсивность закраски этих граней будет одинаковой, и они будут неразличимы. Устранение этого эффекта добиваются специальными приемами разбиения граней на дополнительные многоугольники. Наиболее рационально применение этого метода для диффузного отражения, т.к. при зеркальном отражении форма бликов сильно зависит от выбора аппроксимирующих многоугольников. Метод закраски Фонга строится по тому же принципу, что и метод Гуро. Отличие заключается в том, что билинейная аппроксимация выполняется не для интенсивностей освещения, а для векторов нормалей к граням. В вышеприведенных вычислениях по методу Фонга следует заменить интенсивность в точке на вектор нормали в этой точке. Метод отличается большим объемом вычислений, но имеет ряд преимуществ. В этом методе слабее проявляется эффект полос Маха. Но на сферах метод Фонга дает еще больший эффект полос Маха. Кроме того, оба метода приводят к ошибкам при закраске невыпуклых многоугольников, т.к. нарушается равномерность закраски.

Например, на представленном рисунке сканирование на участке 1 и участке 2 различаются. Расчет интенсивностей на них ведется по разным ребрам с разными интенсивностями. Прохождение сканирующей строки через вершину А будет сопровождаться скачком интенсивностей точек, что практически является необоснованным.

 



Поделиться:


Последнее изменение этой страницы: 2017-02-10; просмотров: 466; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 44.221.46.132 (0.052 с.)