更新:改写这个问题,使其更笼统。(原始供参考)
我正在Three.js WebGLRenderer中渲染一个场景。然后,我需要用新的WebGLRenderer替换渲染器(用新画布替换画布),并在新呈现器中再次呈现相同的场景。
该设置大致如下:
cancelAnimationFrame(this.requestID_);
// all other Three.js objects stay same (and I let Three.js create a new canvas)
this.createNewRenderer();
this.animate();
然而,新的渲染器只会呈现一个空的
我有一个Three.JS应用程序,它根据文本文件为对象着色:
let color1 = 0x00ff00;
let color2 = 0xFF04F0;
在Three.JS代码中:
var cubeGeometry = new THREE.BoxGeometry(15, 1, 5);
var cubeMaterial = new THREE.MeshLambertMaterial({color:color2});
var cube = new THREE.Mesh(cubeGeometry, cubeMaterial);
var cubeGeometry1 = new THREE.BoxGe
我在清理WebGl场景时遇到了一个问题。我正在使用带有WebGlRenderer的Three.js。在我的应用程序中,我必须经常更改视图,因此需要一直渲染新的场景。直到现在,我销毁并重新初始化了整个Threejs场景。在切换场景大约15 - 20次后,我得到以下警告:
WARNING: Too many active WebGL contexts. Oldest context will be lost.
在多次切换之后,上下文完全丢失,应用程序崩溃。
有没有办法在清理时销毁当前的WebGl上下文?或者,WebGlRenderer在实例化时总是创建新的WebGl上下文吗?
我正在使用Three