2.3. Закраска методом Гуро
Если при построении полигональной поверхности для каждой грани (полигона) использовать только одну нормаль, то модель освещения будет создавать изображение, состоящее из отдельных многоугольников. Для сглаживания изображения используются различные методы. Рассмотрим два из них. Самым простым методом является метод Гуро, использующий билинейную интерполяцию интенсивности освещения каждого пиксела сканирующей строки.
Пусть необходимо изобразить многоугольник ABCD (рис. 2.8).
D |
A
C
P
Q R
B |
Рис. 2.8. Закраска методом Гуро
Для этого необходимо определить интенсивность освещения каждого пиксела в сканирующей строке. Интенсивность в вершинах многоугольника определяется с помощью вышеизложенных методов. Для определения интенсивности освещения конкретного пиксела P вначале определяется интенсивность в точках Q и R (точки пересечения сканирующей строки с ребрами многоугольника) с помощью линейной интерполяции:
IQ |
uIB |
1 u IA , u AQ AB , |
IR |
wIC |
1 w IB , w BR BC . |
Далее можно найти интенсивность освещения в точке P с помощью линейной интерполяции интенсивности освещения в точках Q и R (билинейная интерполяция):
IP tIR 1 t IQ , t QP
QR .
26
Для двух пикселов на сканирующей строке:
I P2 t2 IR
1 t2 IQ ,
IP1 t1IR
1 t1 IQ .
Вычитая, получим:
IP2 IP1 t2 t1 IR IQ |
IP1 |
t I . |
Данный метод позволяет улучшить качество изображения, но эффект полос Маха еще очень заметен, так как этот метод интерполяции обеспечивает лишь непрерывность значения интенсивности вдоль границ многоугольников, но не обеспечивает непрерывности изменения интенсивности. И изображение все еще выглядит как набор многоугольников.
Еще один недостаток метода (как и следующего) – эффект «гармошки», который проиллюстрирован на рис. 2.9.
nA |
nB |
nC |
nD |
|
|
|
nE |
||
A |
B |
|
|
|
|
|
|
||
|
|
C |
D |
|
|
|
|
|
|
|
|
|
|
E |
Рис. 2.9. «Нежелательные» эффекты закраски Гуро
Если нормали к вершинам B, C, D вычислить предыдущими методами, то они будут одинаково ориентированы и равны. Интенсивность в этих точках будет одинаковой, а следовательно, поверхность будет выглядеть гладкой, плоской и равномерно окрашенной. Хотя на самом деле это не так. Здесь имеется два выхода. Для обеспечения плавного перехода вводятся дополнительные многоугольники (рис. 2.10).
27
|
|
nC |
A |
B nc |
nd D |
|
|
C E
Рис. 2.10. Плавный переход закраски в методе Гуро
Для обеспечения резкого перехода используется выборочное усреднение нормалей (рис. 2.11).
nA |
|
|
na |
nb |
|
А |
ne |
nE |
С |
nf |
|
B |
D |
|
|
|
E
Рис. 2.11. Резкий переход закраски в методе Гуро
В любом случае это требует дополнительных вычислительных затрат. Закраска Гуро лучше всего выглядит в сочетании с простой моделью освещения с диффузным отражением, так как зеркальное отражение зависит от выбора многоугольников, представляющих объект.
Кроме того, метод может привести к ошибкам при изображении невыпуклых многоугольников (рис. 2.12).
28
B
1
D
2
A 
C
Рис. 2.12. Ошибки при изображении невыпуклых многоугольников
Первая сканирующая строка для определения интенсивности использует вершины A, B и C. Вторая – в одном случае вершины A, B и D, в другом – B, C и D.
2.4. Закраска методом Фонга
Закраска Фонга позволяет разрешить многие проблемы закраски Гуро, в частности, более реалистично выглядят зеркальные блики. При закраске Фонга интерполируется вектор нормали в сканирующей строке. Для этого производится аппроксимация нормали в вершинах многоугольника, а затем с помощью билинейной интерполяции вычисляется нормаль в каждой точке сканирующей строки. Для многоугольника на рис. 2.8:
nQ |
unB |
1 u nA, u AQ AB , |
nR |
wnC |
1 w nB , w BR BC , |
nP |
tnR |
1 t nQ , t QP QR . |
И нормаль можно вычислить за счет приращения:
nP2 nP1
t2 t1
nR nQ
nP1
t n .
Несмотря на улучшение изображения, метод закраски Фонга имеет те же недостатки, что и метод закраски Гуро (рис. 2.9–2.12) за счет билинейной интерполяции.
29
2.5. Модель Варна
На основе простой модели освещения Варн разработал модель освещения со специальными эффектами, которые применяются в профессиональных фотостудиях для управления светом. Это задание направления и концентрации света, возможность ограничить область, освещаемую источником света.
В модели Варна направление света от источника можно регулировать независимо от его положения (рис. 2.13).
|
|
нормаль |
|
|
|
|
к поверхности |
п |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
R |
|
β |
θ |
θ |
α |
S |
L |
|
||||
|
|
|
|
|
|
|
вектор |
направление света |
наблюдения |
|
Рис. 2.13. Модель Варна
Такая модель годится как для направленных, так и для точечных источников света. Интенсивность света от направленного источника света в модели Варна:
I I cosc β k |
d |
cosθ |
k |
s |
cosn α , |
1 |
|
|
|
где с – степень, определяющая пространственную концентрацию направленного источника света. При большом значении c моделируется узкий луч прожектора, а при малом – заливающий свет (аналогично функции n – степени пространственного распределения зеркально отраженного света (см. рис. 2.4)).
Варн для создания спецэффектов (как и в фотостудиях) использует заслонки (рис. 2.14) и конусы (рис. 2.15).
30