0
更新:重新编写问题以使其更一般化。 (原始here仅供参考)更换渲染器后不显示Three.js场景
我在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();
然而,新的渲染器将只呈现一个空的背景,而不是在幕后的网格。 如果我用新计算的网格替换场景网格,渲染再次正常。
因此,我认为它与网格有关。因此,为了避免重新计算网格,我试图在创建新的渲染器之前(和之后)根据this three.js doc设置所有geometry.xxxNeedUpdate和material.needUpdate标志,但是这也不起作用。
我能做些什么来“强制刷新”网格以在新的WebGLRenderer中再次显示?