Gerstner波
更新时间: 2025-04-16 11:06:11
第二部分,我们将深入研究波得奥秘。
具体来说,我们将研究一种数学上更复杂但看起来更逼真的波,称为Gerstner波。
Gerstner波是德国物理学家兼工程师Franz Joseph von Gerstner的名字命名,他首先发现了这个数学模型。
Gerstner波和上一篇中创建的简单正弦波的主要区别在于,在正弦波中,我们只是简单地取任意单个顶点,并根据数学方程将其垂直上下移动。
在Gerstner波中,除了垂直方向的移动外,还考虑了任意给定顶点的水平移动。
因此,Gerstner数学公式虽然很复杂,但效果却很逼真
# 分析公式
这里 Q 是控制波浪陡峭程度的参数。对于单波,Q 为 0 给出通常的滚动正弦波,Q = 1/(wA ) 给出尖锐的波峰。应避免使用较大的 Q 值,因为它们会导致在波峰上方形成环。事实上,我们可以将 Q 的规范保留为制作艺术家的“陡峭度”参数,允许 0 到 1 的范围
这个公式看起来很吓人,但实际上,第三行就是我们第一篇完成的方程
而且 wD·(x,y)+φt 这一块也是现成做好了的
不过要记得将y翻译成z,因为算法中和babylon中的坐标系不一样
# 实现公式
先将 wD·(x,z)+φt 单独放一边,并且引入cos
接下来实现D.x和D.y,风向的x和y分量,然后让它们乘以cos节点的输出
接下来实现Q,Q是一个计算波陡度的一个因子,或者说是我们应该在x和z轴上移动顶点多少,这是一个银子,它会产生陡度
Q = 1/(wA)
然后实现QA跟前面的相乘
然后将x,y,z三个分量输出
调整Q: