游戏观察 游戏产业媒体
手机端下载
当前位置:游戏观察 > 新闻 > 研发资讯 > 正文

用波动方程渲染制造真实的水面波动效果

2018-12-08 11:00 来源:寂灭万乘

  游戏观察12月8日消息,现在游戏制作技术的进步,帮助开发者实现打造真实环境的目的。在很多运用到自然场景的游戏画面中,对水面场景的描绘必不可少,那么如何制作出一个表面如同物理世界一样的流动水面呢?下面来了解一下用波动方程渲染真实的水面波动效果的方法。

  文/寂灭万乘

  很多游戏描述的世界都会含有流体表面,他们可能是个水池,可能是桶强酸,或者一个熔岩坑。为使这些对象的表面如同物理世界一样,需要模拟波在液体表面的扰动传播方式。

水池

  波动方程

  波动方程是一个偏微分方程,表示为在恒定张力下的一维线或二维面上每一个点的运动方式

  一维线波动方程为:

波动方程

  c为波速,x,y是二维笛卡尔坐标系的2个维

  二维面波动方程为

波动方程

  z为x,y轴构成平面的第三维

  由于波速会因为粘性阻尼力衰减,所以水面的波动方程如下

波动方程

  u为液体粘稠度,用以控制波在液体表面的存在时间

  近似导数

  实时仿真波动方程需要大量的计算,所以使用近似导数简化方程

  近似导数如下

近似导数

  所以可得

近似导数

  同理

近似导数

近似导数

近似导数

  计算液体表面平移

  由之前的近似表达式易得

计算液体表面平移

  使dx=dy=d易得最终方程如下

计算液体表面平移

  稳定条件

  如果波速c太快,或者dt时间段太长,使位移发散为无穷大,需要约束c或t,约束如下

稳定条件

稳定条件

(稳定条件)

  或

稳定条件

(稳定条件)

  参考资源

  Mathematics for 3D Game Programming and Computer Graphics,Third Edition

  博客地址:https://www.cnblogs.com/millionsmultiplication/p/9895079.html

本网站所收集的资料来源于互联网公开信息或网友自助投稿,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。如果您发现网站上有侵犯您知识产权的资料,请与我们取得联系,本站会在3个工作日内删除。

游戏观察

聚焦极有价值的游戏产业资讯。打造有影响力的游戏产业媒体。

赋能游戏跨端开发,Unity于2021 ChinaJoy推出跨端移植服务