Threejs切换场景

时间:2017-05-22 09:48:47

标签: three.js scene renderer

我实际上在网站的三个不同区域加载和渲染3个不同场景的项目。 目前,每次我需要更改场景时,我都会删除画布(所有Threejs侦听器和迭代器)并从头开始渲染新场景。

使用它的渲染器创建一个独特的场景,并在其中加载来自三个不同场景的不同网格,灯光和摄像机,这是一个好习惯还是性能优势?

任何人都已经测试了类似的情景吗?

2 个答案:

答案 0 :(得分:0)

您是否在寻找this之类的内容?

如果您正在寻找一次显示一个场景,我认为最好的选择是创建场景并仅渲染所选场景。请参阅THREE.WebGLRenderer.render()

答案 1 :(得分:0)

性能方面,使用单个渲染器实例和传递给它的不同场景/摄像机对象可能会稍微好一点render() - 调用和(如果需要)重新定位{{1在您的网站上。这样你就不需要拥有多个画布和渲染上下文,渲染器也可以缓存一些与webgl相关的东西。此方法还可以在场景中重复使用材料等内容。

然而,性能差异应该是最小的,并且仅在(或至少大部分)初始化成本在最大范围内。 100毫秒(当然取决于你究竟在做什么,但这是我的猜测。)

因此,如果将所有内容隔离开来感觉更好(并且可能还有很好的理由取决于您的应用程序的构建方式):只需保持这种方式并测量它是否有任何负面影响(我的猜测:它可能赢得了。