我遵循Nvidia GPU Gems第1章关于使用着色器进行水模拟。我试图按照章节创建使用OpenGL es 2.0 (iOS)中的glsl海水着色器。
我能够创建在章节中描述的几何波,但当它涉及到创建纹理法线贴图我有麻烦。本章对纹理渲染目标实际渲染的内容有点不清楚。我应该渲染法线贴图还是高度贴图?在文本中,它表明法线被渲染为rgb颜色的目标,但再一次,图像(b)和(d)下的1.3节"创作"似乎表明,灰度高度图应该被渲染到纹理目标。本章还讨论了使用查找纹理的u坐标,但我不清楚这如何适合渲染纹理。是否有2种不同的纹理来渲染?如果有人能帮助澄清这些组件如何配合在一起,我将非常感激!
为什么要渲染到纹理呢?你可以很容易地在你的几何着色器中计算这些值。因为他们改变每一帧,你需要重复这些计算每次无论如何,所以我不知道你通过渲染纹理获得什么。
你需要计算两个值:高度位移(使用公式3)和每个顶点的法线(使用公式6b)。