重用WebGLRenderTarget

时间:2019-03-02 21:32:33

标签: javascript three.js

我有两个场景:主要的一个场景,渲染一个带纹理的平面,第二个场景,应该渲染成一个纹理。该纹理应该用作主场景中飞机的地图。

所有THREE.WebGLRenderTarget示例出于某种原因都会在每帧重绘两个场景,但是我希望将我的第二个场景仅渲染一次到纹理。比渲染结果应存储为其他任何纹理。

here提供了一个简化的小提琴。在animate()函数中,您可以删除if(i === 0),以便每帧渲染第二个场景。

1 个答案:

答案 0 :(得分:2)

纹理加载是异步的。您需要先确保纹理已加载,然后再使用。

一种解决方案是在加载程序回调中调用animate()

beginTexture = new THREE.TextureLoader().load( "https://i.imgur.com/eoQwyRb.png", animate );

另一种解决方案是使用加载管理器。

three.js r.102

相关问题