如何使用OpenGL ES 1.1实现海洋表面效果? [关闭]
题
我正在研究一种发生在海面上的iPhone游戏。有人可以推荐一些示例代码或教程来实现OpenGL中的波形或涟漪吗?
在我写这篇文章时,iPhone仅支持OpenGL ES 1.1,因此不支持着色器或其他奇特效果。
我不需要太花哨的东西。例如,我不需要反思。我不想过度使用设备。我只需要一些看起来像海洋的东西。 (但如果它看起来和Koi Pond一样好的话会很好。)
解决方案
iPhone在功能上与1999年的GPU非常相似(例如NVIDIA Riva TNT 2)。所以你最现实的选择就是混合几个滚动纹理。
E.g。具有一种具有一些“波形图案”的纹理。将其设置为两个纹理阶段,并以不同的方向/速度滚动(通过纹理矩阵)。设置纹理组合器,将纹理添加到最终结果中(或执行其他操作;此处有大量可能性)。
其他提示
将表格的条款加在一起:
a * sin(b * x + c * y + d * t)
每个这样的术语以这种方式产生一组无聊的直波: a
是这些波所贡献的振幅(高度), b
和 c
控制波的相对方向和频率(间隔), d
在 t
(模拟时间)发生变化时沿着那个方向移动波。
尝试使用该表单的一些术语,保持 t
不变,以获得起伏的表面。然后你可以“调整”获得你喜欢的粗糙程度的系数。一旦你找到了一些你满意的系数,让 t
变化以使其运动。
不隶属于 StackOverflow