Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Телков всё вместе.doc
Скачиваний:
32
Добавлен:
17.04.2019
Размер:
4.94 Mб
Скачать

21. Формирование окраски методом Гуро

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

Метод Гуро (Gouraud shading) был разработан в 1971 году. Данный метод предназначен для сглаживания полигональной поверхности на базе линейной интерполяции интенсивности света. Рассмотрим работу метода на следующем примере.

Пусть существует грань ABCD, принадлежащая полигональной поверхности. Рассмотрим одну из строк растра, пересекающую в процессе сканирования данную грань. Задача заключается в определении интенсивности света в каждой точке на поверхности грани. Исходными данными для расчета являются интенсивности в угловых точках A, B, C, D, которые рассчитывается по одному из вариантов формулы закраски. При этом следует помнить, что для полигональной поверхности лучше брать формулы, не учитывающие зеркальную составляющую.

Расчет произвольной точки G, находящейся внутри грани полигональной поверхности, базируется на значениях интенсивностей точек пересечения текущей строки растра с гранями (точки E и F на рис.). Вычисление этих точек, в свою очередь, базируются на расчетах, полученных для вершин граней АВ и ВС. Интенсивность света в точке Е ребра АВ на основе линейной интерполяции может быть представлена следующим образом:

IE = IA ∙ s + IB ∙ (1 - s) (1)

s – параметр ( s ∈ [0, 1] ), определяющий положение точки на ребре АВ.

Аналогичным образом вычисляется интенсивность точки F:

IF = IB ∙ t + IC ∙ (1 - t) (2)

Аналогичным образом определяется и интенсивность точки, расположенной на отрезке ЕF:

IG = IE ∙ u + IF ∙ (1 - u) (3)

При этом значение параметров определяется следующим образом:

s = AE / AB; t = BF / BC; u = EG / EF

Используя формулы (1) – (3) можно определить интенсивность света, в каждой точке в пределах грани ABCD.

Процесс вычисления интенсивности в произвольной грани, можно значительно ускорить, если определить рекурсивную зависимость между значениями интенсивностей двух соседних пикселей, расположенных на строке развертки, пересекающих грань:

I2 = IE ∙ u2 + IF ∙ (1 – u2)

I1 = IE ∙ u1 + IF ∙ (1 – u1)

I2 – I1 = (IE – IF) ∙ (U2 – U1) = ΔI ∙ ΔU (4)

где ΔI – перепад интенсивности между крайними точками, рассматриваемой строки развертки; ΔU - расстояние между соседними точками строки развертки, выраженное в величинах параметра, привязанного к рассматриваемому отрезку.

На основании формул (1) – (4) можно построить алгоритм, выполняющий закраску по методу Гуро, который будет состоять из следующих четырех шагов:

1) проецирование вершин граней полигональной поверхности на плоскость экрана.

2) вычисление интенсивностей света в этих точках, на основании формул закраски (без учета зеркальной составляющей).

3) определение координат концов отрезка для граней, пересекаемых строкой развертки и вычисление интенсивности в них.

4) вычисление интенсивности пикселей, расположенных на отрезке, соответствующей строке растра по формуле (4).

Достоинства метода Гуро:

- простота алгоритма;

- гарантия непрерывного изменения интенсивности в пределах одной грани и при переходе между соседними гранями;

- высокое быстродействие за счет наличия рекуррентного соотношения для интенсивности в пределах одной грани.

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

не обеспечивает гладкости изменения интенсивности, следствием чего являются:

1) усреднение интенсивности в середине грани, что приводит к отображению плоских поверхностей;

2) возможно появление полос Маха (эффект увеличения интенсивности на границах областей с постоянной яркостью).

Для устранения недостатков данного метода был предложен метод, базирующийся на интерполяции векторов-нормалей к поверхностям граней.

Общая характеристика методов Гуро и Фонга

Для данных методов общим достоинством является их простота и высокое быстродействие. Поэтому данные методы стали обязательной составляющей программ трехмерного моделирования и виртуальной реальности, использующих полигональные модели поверхностей. В современных программах трехмерного моделирования нет необходимости применения данных методов, т. к. большинство из них в качестве базовых использует криволинейные (например, сплайновые), а не полигональные модели. Кроме того, данным двум методам присущ еще один недостаток, который становится заметным при построении видеоряда. Методы Гуро и Фонга гарантируют плавное изменение освещения объектов лишь в пределах одного изображения (кадра). Если же происходит соединение таких одиночных кадров в видеоряд, то для глаза становится заметным скачкообразное изменение интенсивности при переходе от одного кадра к другому. Поэтому для построения видеоряда на базе полигональных моделей используются другие методы, позволяющие выполнить межкадровое сглаживание интенсивности.

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