水面模拟--FFT Ocean

前言

FFTOcean是一种基于统计学模型的水面模拟算法,原论文为SIGGRAPH 的一篇文章Simulating Ocean Water。

先看一下效果

 

一、需要设置的一些参数

首先文章假设节点平面坐标X=(x,z),需要根据X来计算高度y。接着需要设定的参数有:海洋的实际大小(Lx,Lz),将海洋划分为网格的大小(N,M),海洋环境中的风速V,以及风向Vdir,还有幅度A。

二、高度场函数推导

文章先是定义高度场的计算公式为:

其中

为了方便实现,我们假设

故可以把公式(2)改写为

现在公式(1)中还需要计算的就只有h0(K)了,即公式(5)中的h0'(n',m'),h0'*(n',m')为h0'(n',m')的共轭复数,因此不需要额外推导。

       公式(6)中,V和W分别为风速和风向,需要自行设定。

高斯随机数的代码为:

float urand()
{
	return rand() / (float)RAND_MAX;
}
// Generates Gaussian random number with mean 0 and standard deviation 1.
float gauss()
{
	float u1 = urand();
	float u2 = urand();

	if (u1 <
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值