写在前面这篇文章其实早就写好了,一直放在草稿箱没发。因为上一篇被各位看官老爷嫌看不懂,这次拿出来就删了n多公式,加了很多图示,大家没事就当看个热闹吧。麻烦多点赞。海洋,溪流,湖泊等水体的模拟在游戏中是十分常见的技术,每个开发人员或多或少都听说过几种制作水体的方法。不过想要把水体模拟做好,做出高质量,其中还是有很多值得注意的地方。这篇文章就是总结一下个人制作水体模拟的心得,以及一些平时阅读技术论文和开发中容易忽略的细节。首先要说一下,游戏中使用的“水体模拟”技术并不是真正的流体动力学计算,出于运行效率的考量,实际上使用技术的大多是用数学公式复现水体的视觉效果。从这点来说下面提到的公式基本都很简单,而且也不是金科玉律,可以根据每个人的理解进行改写。游戏中使用的水体模拟技术大体可以分为三类第一类是叠加不同的随机周期函数构成水体表面,多用来表现波涛起伏海面,暂且称为波形叠加法。第二类是使用波动方程或者近似公式来表现局部的水波,多用于表现物体与水面互动产生的涟漪。第三类是使用预渲染的Flow Map表现复杂的水流运动,多用于模拟涡流等难于实时计算的非线性运动。第一部分波形叠加Gerstner波波形叠加故名思义就是将很多个不同周期,不同振幅的周期函数叠加在一起。但在水体模拟中我们使用的基础波形并不是正弦和余弦波,而是一种叫做Gerstner波的特殊波形。Gerstner波和余弦波的差别,用一幅
...
继续阅读
(31)