Моделирование волн на поверхности жидкости
3
Окончательное выражение для вычисления координаты точки
z
на поверхности жидкости в зависимости от ее координат
x
,
y
и вре-
мени имеет следующий вид:
sin 1
( , , )
2
k
S
f x y t
A
+ ⎛
⎞
= ⎜
⎟
⎝
⎠
,
где
S
=
Dir
(
x
,
y
)·
Pos
(
x
,
y
)
f
+
t
φ
.
Наложение волн.
С целью получения более реалистичного изоб-
ражения волн возникает необходимость рассмотрения нескольких
волн и их наложения, как на самом деле происходит на поверхности
жидкости. Учитывая принцип суперпозиции и уравнение отдельной
волны, итоговое значение функции может быть вычислено как сумма
значений функций, описывающих отдельные волны. Итоговое урав-
нение:
1
( , , )
( sin( ( , )
))
l
j
j
j
j
j
H x y t
A D x y f t
=
=
+ φ
∑
,
где
A
j
— амплитуда
j
-й бегущей волны;
D
j
— вектор направления
распространения
j
-й бегущей волны;
f
j
— частота
j
-й бегущей волны;
t
— время;
φ
j
— фазовая постоянная
j
-й бегущей волны.
В такой модели есть возможность наблюдать интерференцию волн.
Круговые волны.
Наряду с наложением волн, моделирование
круговых волн также улучшает реалистичность создаваемого изоб-
ражения поверхности жидкости. Данный вид волн позволяет наблю-
дать поведение поверхности жидкости в случае эффекта «брошенно-
го камня».
Учесть этот эффект можно с помощью переопределения вектора
направления в каждой точке поверхности и изменения координаты
точки смещением начала координат в точку центра круговой волны:
( , )
( , )
,
( , )
,
,
i
i
i
n
c
n
c
x y C
D x y
x y C
X X X
Y Y Y
⎛
⎞ −
= ⎜
⎟ − ⎝
⎠
= −
= −
где
C
i
— точка начала распространения
i
-й круговой волны;
X
,
Y
— ко-
ординаты рассматриваемой точки;
X
n
,
Y
n
— преобразованные координа-
ты точки;
X
c
,
Y
c
— координаты точки начала распространения волны.
Измененные значения подставляются в формулу бегущей волны.
Вычисление нормалей.
При визуализации поверхности жидко-
сти производится переход от каркасной модели к поверхностной,
причем для изображения получаемой поверхности необходимо вы-