【问题标题】:threejs renderer stop when I new a new WebGLRenderer当我新建一个新的 WebGLRenderer 时,threejs 渲染器停止
【发布时间】:2017-06-01 03:25:45
【问题描述】:

我想创建场景的快照,但是当我启用preserveDrawingBuffer=true时,性能很低,所以我做了一个按钮,当我点击按钮时,我创建一个新的渲染器如下:

          $("#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)
});

但这引起了一个新问题,渲染和动画停止了,代码是怎么回事?为什么我不能创建一个新的渲染器?

【问题讨论】:

    标签: three.js


    【解决方案1】:

    您需要将renderer.domeElement 附加到您的文档中的某个位置才能看到它。

    【讨论】:

      【解决方案2】:

      您无需设置preserveDrawingBuffer: true 即可拍摄快照。您只需要在渲染之后和退出当前事件之前拍摄快照。

       renderer.render(scene, camera);
       const pic = renderer.domElement.toDataURL('image/jpeg');
      

      看到这个答案:https://stackoverflow.com/a/30647502/128511

      【讨论】:

        猜你喜欢
        • 2014-07-09
        • 1970-01-01
        • 1970-01-01
        • 2013-05-18
        • 1970-01-01
        • 2019-04-18
        • 1970-01-01
        • 2018-02-22
        • 1970-01-01
        相关资源
        最近更新 更多