重用WebGLRenderTarget

问题描述 投票:0回答:1

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

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

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

javascript three.js
1个回答
2
投票

纹理加载是异步的。您需要确保在使用纹理之前加载纹理。

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

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

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

three.js r.102

© www.soinside.com 2019 - 2024. All rights reserved.