我想在ThreeJS中使用场景的渲染结果作为纹理。ThreeJS有这样的功能吗?是否需要修改ThreeJS?谢谢。
发布于 2017-03-02 18:19:29
通过将传递给THREE.WebGLRenderer.render()
,可以将场景渲染到纹理。
首先,创建所需大小的渲染目标(这是您的纹理):
var renderer = new THREE.WebGLRenderer();
var renderTarget = new THREE.WebGLRenderTarget(512, 512);
然后,可以对材质使用THREE.WebGLRenderTarget.texture
:
var geometry = new THREE.PlaneGeometry(1.0, 1.0);
var material = new THREE.MeshBasicMaterial({
map: renderTarget.texture
});
var mesh = new THREE.Mesh(geometry, material);
scene.add(mesh);
最后在两个过程中渲染场景:
renderer.render(fakeScene, fakeCamera, renderTarget);
renderer.render(scene, camera);
您可能需要创建新场景和新摄影机以在renderTarget
上渲染。这取决于你想做什么。
https://stackoverflow.com/questions/42562056
复制