我有一个Three.js场景,我设置了渲染器的preserveDrawingBuffer:true因为我想使用renderer.toDataURL拍摄画布上的内容的快照,我也使用renderer.autoClear = false因为我是使用2个场景,每个场景一个(当然是一个渲染器)。
问题在于,当我使用orbitControls移动相机时,对象不会像它们应该的那样动画,它们之前的状态保留在画布上,并且它们正在创建一个丑陋的绘画(它们没有被删除),因为preserveDrawingBuffer:true设置。
如何同时拥有2个场景/摄像机和轨道控制的快照功能?
谢谢。
答案 0 :(得分:7)
如果要实例化WebGLRenderer
并保留绘图缓冲区,请执行以下操作:
var renderer = new THREE.WebGLRenderer( { preserveDrawingBuffer: true } );
如果你正在设置
renderer.autoClear = false;
你必须在渲染之前调用renderer.clear()
:
renderer.clear();
renderer.render( scene, camera );
three.js r.69