Курсовая работа: Построение изображений ландшафта в реальном времени
· определяются усредненные нормали в вершинах - производится усреднение нормалей примыкающих граней. На иллюстрации приведен пример – вектор нормали в вершине a равен ;
·
Рис. 2.1.7.2.1. Нормаль в вершине
· на основе усредненных нормалей в вершинах вычисляются значения интенсивностей в вершинах согласно принятой модели отражения;
· производится закрашивание грани цветом, соответствующим линейной интерполяции значений интенсивности в вершинах.
Определение интерполированных значений интенсивности отраженного света в каждой точке грани (и, следовательно, цвет каждого пикселя) удобно выполнять во время цикла заполнения полигона (например, совместить его с реализацией алгоритма Z-буфера). Далее рассматривается заполнение грани горизонталями в экранных координатах.
Рис. 2.1.7.2.2. Интерполяция значений интенсивности
Интерполированная интенсивность I в точке (X, Y) определяется исходя из пропорции
.
Отсюда
.
Значения интенсивностей I1 и I2 на концах горизонтального отрезка представляет собой интерполяцию интенсивности в вершинах:
; или
, .
Рис. 2.1.7.2.3. Изображение, получено методом Гуро
2.1.7.3 Метод Фонга
Этот метод закраски аналогичен методу Гуро, но при использовании метода Фонга для определения цвета в каждой точке интерполируются не интенсивности отраженного света, а векторы нормалей.
Последовательность действий такова:
· определяются нормали к граням;
· по нормалям к граням определяются усредненные нормали в вершинах. В каждой точке закрашиваемой грани определяется интерполированный вектор нормали;
· по направлению векторов нормали определяется цвет точек грани в соответствии с принятой моделью отражения цвета.
Как уже было сказано, метод заключается в интерполяции вектора нормали. Для интерполяции будут использоваться векторы , исходящие из начала координат плоскости проецирования и параллельными соответствующим нормалям в вершинах a, b и c.
Рис. 2.1.7.3.1. Интерполяция векторов нормалей
Нахождение и производится следующим образом:
,