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: