Three.js r84 - EffectComposer:无法重复使用WebGLRenderTarget.texture

时间:2017-02-15 00:17:53

标签: javascript three.js

我目前正在尝试设置我创建的earlier post中描述的技术。

ShaderPass使用readBuffer内的纹理来填充tDiffuse制服。 您可以在第49行on github看到此信息。 然后我修改了ShaderPass以包含另一个属性this.exportBuffer

this.exportBuffer填充了第61行中用于呈现的readBuffer。在renderer.render()被调用后,该属性被填充。

然后我继续从最后一个ShaderPass中提取exportBuffer.texture属性。 在我的理论中,导出的exportBuffer.texure应该将图像保存在最后writeBuffer内,该图像应该是我第一个EffectComposer上显示的图像。

然而:无论我尝试什么,exportBuffer内的纹理似乎都保持黑色。

如果我可以提供更多信息或代码以解决此问题,请告知我们。

问候。

1 个答案:

答案 0 :(得分:1)

我说这是由于多个webgl画布不能共享相同的上下文的限制(参见http://games.greggman.com/game/webgl-techniques-and-performance)。

我建议您使用相同的渲染器来运行两个EffectComposers。从我看到的,你所要做的就是指出" map"你的" scndMat"在开始渲染第二个EffectComposer之前,右边的输出纹理。