适用于iOS的水面样品

时间:2011-10-12 07:43:22

标签: ios opengl-es

我正在寻找像Pocket pond HD这样的水面效果样本。我找到了一些教程:

但是,它很粗略。

1 个答案:

答案 0 :(得分:0)

很简单。

您只需制作2D高度图(在该特定位置的水高2D阵列)。使用高度图,您可以根据最近的高度点计算(近似,插值)每个位置的法线。

然后执行“简单光线追踪”。你根据法线“折射每条光线”,与平面(底部)相交,并从那个地方的纹理中获得颜色。

实际上:从高度贴图制作三角形网格并渲染这些三角形。您可以在“顶点缓冲区”中发送法线或在“顶点着色器”中计算它们。光线跟踪在Fragment Shader中完成。每条射线的方向可以是(0,0,1)。您可以通过当前法线折射它并缩放结果,因此Z坐标等于水深。新的X和Y坐标是纹理坐标。

要制作动画,只需及时更新高度图。