Метод закраски, который основан на интерполяции интенсивности и известен как метод Гуро (по имени его разработчика), позволяет устранить дискретность изменения интенсивности. Процесс закраски по методу Гуро осуществляется в четыре этапа:
1. Вычисляются нормали ко всем полигонам.
2. Определяются нормали в вершинах путем усреднения нормалей по всем полигональным граням, которым принадлежит вершина (рис. 9.3).
Рис. 9.3. Нормали к вершинам: v=( 1 + 2 + 3 + 4)/4
3. Используя нормали в вершинах и применяя произвольный метод закраски, вычисляются значения интенсивности в вершинах.
4. Каждый многоугольник закрашивается путем линейной интерполяции значений интенсивностей в вершинах сначала вдоль каждого ребра, а затем и между ребрами вдоль каждой сканирующей строки (рис. 9.4).
y |
y1 |
ys |
y2 |
y3 |
I1 |
I2 |
I3 |
Ia |
Ib |
Ip |
Сканирующая строка |
Рис. 9.4. Интерполяция интенсивностей
Интерполяция вдоль ребер легко объединяется с алгоритмом удаления скрытых поверхностей, построенным на принципе построчного сканирования. Для всех ребер запоминается начальная интенсивность, а также изменение интенсивности при каждом единичном шаге по координате y, Заполнение видимого интервала на сканирующей строке производится путем интерполяции между значениями интенсивности на двух ребрах, ограничивающих интервал (рис 6.4).
Ia = I1 + I2 ;
Ib = I1 + I3 ;
Ip = Ia + Ib .
Для цветных объектов отдельно интерполируется каждая из компонент цвета.