3

我正在开发一款发生在海面上的 iPhone 游戏。有人可以推荐一些示例代码或教程来在 OpenGL 中实现波浪或涟漪吗?

在我写这篇文章时,iPhone 只支持 OpenGL ES 1.1,所以不支持着色器或其他花哨的效果。

我不需要太花哨的东西。例如,我不需要反射。我不想让设备负担过重。我只需要一些看起来像海洋的东西。(但如果它看起来像锦鲤池一样漂亮就好了。)

4

2 回答 2

3

iPhone 在功能上很像 1999 年的 GPU(例如 NVIDIA Riva TNT 2)。所以你最现实的选择只是混合几个滚动纹理。

例如,具有某种“波浪图案”的一种纹理。将其设置为两个纹理阶段,并以不同的方向/速度滚动(通过纹理矩阵)。设置纹理组合器将纹理添加在一起以获得最终结果(或执行一些其他操作;这里有很多可能性)。

于 2008-10-07T11:11:29.577 回答
3

将形式的术语加在一起:

a * sin(b * x + c * y + d * t)

每个这样的项都会以这种方式产生一组无聊的直波:a是这些波贡献的幅度(高度),bc控制波的相对方向和频率(间距),并d沿该方向移动波t(模拟时间)变化。

试验几个该形式的项,保持t不变,得到一个起伏的表面。然后,您可以“调整”系数以获得您喜欢的粗糙度。一旦你找到了几组你满意的系数,就让它t变化起来。

于 2008-10-07T12:52:45.020 回答