А.В. Куров, К.А. Якиль
4
числять интенсивность освещения, что, в свою очередь, требует зна-
ния вектора нормали в точках поверхности. Используя уравнения по-
верхностей, определим нормали в любой ее точке. Уравнение норма-
ли к поверхности в точке (
x
,
y
,
z
):
( , , )
( , , )
( , , )
N x y z NB x y z NT x y z
=
⊗
,
где
NB
(
x
,
y
,
z
) и
NT
(
x
,
y
,
z
) — частные производные по
x
и
y
;
( , , )
( , , )
,
( , , )
( , , )
,
f x y t
NB x y z
x
f x y t
NT x y z
y
∂
=
∂
∂
=
∂
где
f
(
x
,
y
,
t
) — итоговое уравнение поверхности;
1
1
( , , )
sin 1
0,5
cos ,
2
( , , )
sin 1
0,5
cos .
2
k
x
k
y
f x y t
S
kDir fA
S
x
f x y t
S
kDir fA
S
y
−
−
∂
+ ⎛
⎞
=
⎜
⎟
⎝
⎠
∂
∂
+ ⎛
⎞
=
⎜
⎟
⎝
⎠
∂
Задавая векторы нормалей проекциями на координатные оси, по-
лучим
( , , )
( , , )
( , , )
,
,
1, 0,
,
( , , )
( , , )
( , , )
,
,
0,1,
.
x y f x y t
f x y t
NB x y z
x x
x
x
x y f x y t
f x y t
NT x y z
y y
y
y
∂ ∂ ∂
∂
⎛
⎞ ⎛
⎞
=
=
⎜
⎟ ⎜
⎟
⎝
⎠ ⎝
⎠
∂ ∂
∂
∂
⎛
⎞ ⎛
⎞
∂ ∂ ∂
∂
=
=
⎜
⎟ ⎜
⎟
⎝ ∂ ∂
∂ ⎠ ⎝
∂ ⎠
Поскольку производится поиск общего решения, то необходимо
найти частные производные от сумм волновых уравнений по
x
и
y
.
Итоговая формула для вычисления нормали
0
0
( , , )
( , , )
( , )
,
,1
l
l
j
j
f x y t
f x y t
N x y
x
y
=
=
⎛
⎞
∂
∂
= −
−
⎜
⎟
∂
∂
⎝
⎠
∑ ∑
.
Выбор алгоритма визуализации.
На реалистичность изображе-
ния влияет модель освещения. Поскольку необходимо поддерживать
визуализацию изображения в реальном времени, выбрана простая
модель освещения, в которой учитывается диффузное отражение,
рассеянный свет и используется упрощенная модель Буи-Туонга
Фонга для зеркального отражения [1]:
и д
з
1
( cos θ cos α )
n
m
j
i
j
р р
j
j
I k
k
I I k
d L
=
+
= +
+
∑
,