OpenGL单圆波
OpenGL single circular wave
我正在尝试使用 Gerstner 波函数在 OpenGL 中实现圆波:
它工作正常,但我的所有地面都因更多的波浪而变形,我想要的只是一个从中心传播到外部的波浪。我试图修改 sqrt(x*x + y*y)
位于两个圆圈之间的点的 z 位置以限制波浪的边界。这两个圆,第一个圆的半径为 wavelength * time
,第二个圆的半径为 wavelength * (time + 1)
,但这仍然不够好,因为圆的膨胀速度比波的速度慢。
当您通过 wavelength * time
计算边界时,您假设波前以等于波长的速度移动;在 1 个单位时间后,波前将在您的计算中行进 wavelength
个单位。
尝试使用您用来计算 $\varphi$ 的波速,而不是那里的 wavelength
。
我正在尝试使用 Gerstner 波函数在 OpenGL 中实现圆波:
它工作正常,但我的所有地面都因更多的波浪而变形,我想要的只是一个从中心传播到外部的波浪。我试图修改 sqrt(x*x + y*y)
位于两个圆圈之间的点的 z 位置以限制波浪的边界。这两个圆,第一个圆的半径为 wavelength * time
,第二个圆的半径为 wavelength * (time + 1)
,但这仍然不够好,因为圆的膨胀速度比波的速度慢。
当您通过 wavelength * time
计算边界时,您假设波前以等于波长的速度移动;在 1 个单位时间后,波前将在您的计算中行进 wavelength
个单位。
尝试使用您用来计算 $\varphi$ 的波速,而不是那里的 wavelength
。