我试图把这个(http://madebyevan.com/webgl-water/)移到三个.我想我已经接近了(现在只想要模拟,不关心焦散/折射).我想让它与着色器一起使用GPU提升.
这是我目前使用着色器的三个设置:http://jsfiddle.net/EqLL9/2/ (第二个较小的平面用于调试WebGLRenderTarget中当前的内容)
我正在努力的是从WebGLRenderTarget(在我的示例中为rtTexture)中读取数据.在示例中,您将看到围绕中心点的4个顶点向上移位.这是正确的(在1个模拟步骤之后),因为它始于中心点是唯一的位移点.
如果我可以从rtTexture读回数据并更新每帧的数据纹理(buf1),那么模拟应该正确地设置动画.如何直接从WebGLRenderTarget读取数据?所有示例都演示了如何将数据发送到目标(呈现给它),而不是从中读取数据.或者我做错了吗?有些东西告诉我,我将不得不使用多种纹理,并以某种方式来回交换,类似于Evan的做法.
TL; DR:如何在调用之后将数据从WebGLRenderTarget复制到DataTexture:
// render to rtTexture
renderer.render( sceneRTT, cameraRTT, rtTexture, true );
编辑:可能已经在jsfiddle/gero3/UyGD8/9 /找到解决方案将进行调查和报告.