第1章 用物理模型进行高效的水模拟

一,用物理模型进行高效的水模拟
一句话概括:基本网格的几何波动+动态法线贴图。
1.1现状
1,快速傅里叶FFT在大中尺寸栅格取得逼真效果,并能适用于顶点shader和像素shader
2,能基于体素(Voxel)对简化的Navier-Stokes方程求解
1.2gpu水模拟目前的改进
1,顶点着色器,
(1)四个正弦波相加,可以计算水面的高度和方位
(2)三个Gerstner波可以计算水面高度
2,像素着色器
周期波函数加和,来创建动态的平铺(tiling)凹凸贴图,从而获得水面细节
1.2正弦近似值的加和
需要运行两个表面模拟:(1)表面网格的几何波动(2)网格上法线图的扰动
由简单的正弦函数波叠加得到一个连续函数。这个连续函数可以描述水面上所有点的高度和方向。
如果在顶点水平位置对函数取样,则可以使网格细分形成连续水面。
类似,如果在纹理空间中,对近似正弦叠加的发现取样,通过rtt,可以产生表面的法线图。
为每帧渲染法线图,允许有限数量的正弦波相互独立运行,可以大大提高渲染的逼真度。

水纹理的波纹好坏决定着模拟的逼真度,波纹表面的几何波动提供了呈现纹理的精细框架结构。

波的选择:波长,振幅,速度,方向。所有波的总表面是正弦波的叠加。Wi(x,y,t)=Ai*sin(Di(x,y)*yi+t*ki

为了提供场景动力学的变量,将在约束中随机产生这些波参数。随着时间的变化,不断将一个波淡出,再以一组不同的参数将其淡入。这些参数是相关的。

法线是副法线和切线的叉积 。副法线是对x求偏导,切线是对y求偏导。在表面上的三维位置p是p(x,y,t)=(x,y,H(x,y,t))。

几何波数量限制为4个。分为方向波和圆形波。方向波每个Di是波寿命常数。对于圆形波,方向必须在每个顶点计算,它是从波中心Ci到顶点的规范化向量。Di(x,y) = [ ((x,y)-Ci)/|(x,y)-Ci|].

对于大的水体,是水吹动产生模型,用方向波。对于较小的池塘中的水,产生波的原因不是由于风,用圆形波。

海水建模用Gerstner波函数,可以提供一些表面的微妙运动,顶点朝着每个浪头移动形成更尖的峰,在表面上浪头更尖。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值