OpenGL水面波动的设计与实现

学习了这么多图形学的知识。一直琢磨着搞个游戏出来。奈何美术功底并不好而且时间比较紧迫便改成渲染一些图形学具有实验性的场景。于是我就选择了水面模拟作为我开始渲染的第一步。

网络上关于水面模拟的资料很不详细。很多都是简单的说一下思路而没有详细的源代码。我参考的是GPU GEMS上的第一章关于水面模拟的内容。在我刚学图形学的时候。就把《GPU GEMS》和《pbrt》这种英文大部头当成“禁书”。总感觉这些东西的难度非常高。实际在做这个特效的时候感觉到的确有难度。但不会让人感到夸张。

闲话少说。下面我会简单的阐述一下我是如何实现我的效果。

我使用的是gem gems第一章的前两个公式。看过的小朋友会惊讶。前两个公式就是正弦波公式。难道就这么简单么?对,就是这么简单。在我实现的过程中发现用这两个简单公式就已经能模拟出很棒的水面效果了(我才不会说是我看不懂后面更复杂的公式呢。)

用一组参数来定义波:

· 波长L:波峰到波峰的长度 频率w = 2π/L

· 振幅A:波峰到水平面的高度

· 速度S:波峰每秒移动速度。相位常量φ=2π*S/L

· 方向D:波峰移动方向的水平向量(一个二维向量)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值