我想创建一个场景的快照,但是当我启用preserveDrawingBuffer = true时,perfermance就会降低,所以我创建了一个按钮,当我点击按钮时,我创建了一个新的渲染器,如下所示:
$("#shot").click(function() {
renderer = new THREE.WebGLRenderer({
antialias: true,
preserveDrawingBuffer: true
})
new TWEEN.Tween(camera.position).to({
x: 0,
y: 400,
z: 1700
}, 1000).start();
setTimeout(function() {
var pic = renderer.domElement.toDataURL('image/jpeg');
console.log(pic);
}, 1100)
});
但这引起了一个新问题,渲染和动画停止了,代码的问题是什么?为什么我不能创建一个新的渲染器?
答案 0 :(得分:0)
您需要将renderer.domeElement
附加到您的文档某处才能显示。
答案 1 :(得分:0)
您无需设置preserveDrawingBuffer: true
即可拍摄快照。您只需在渲染后拍摄快照,然后 退出当前事件。
renderer.render(scene, camera);
const pic = renderer.domElement.toDataURL('image/jpeg');