我实际上在网站的三个不同区域加载和渲染3个不同场景的项目。 目前,每次我需要更改场景时,我都会删除画布(所有Threejs侦听器和迭代器)并从头开始渲染新场景。
使用它的渲染器创建一个独特的场景,并在其中加载来自三个不同场景的不同网格,灯光和摄像机,这是一个好习惯还是性能优势?
任何人都已经测试了类似的情景吗?
答案 0 :(得分:0)
您是否在寻找this之类的内容?
如果您正在寻找一次显示一个场景,我认为最好的选择是创建场景并仅渲染所选场景。请参阅THREE.WebGLRenderer.render()。
答案 1 :(得分:0)
性能方面,使用单个渲染器实例和传递给它的不同场景/摄像机对象可能会稍微好一点render()
- 调用和(如果需要)重新定位{{1在您的网站上。这样你就不需要拥有多个画布和渲染上下文,渲染器也可以缓存一些与webgl相关的东西。此方法还可以在场景中重复使用材料等内容。
然而,性能差异应该是最小的,并且仅在(或至少大部分)初始化成本在最大范围内。 100毫秒(当然取决于你究竟在做什么,但这是我的猜测。)
因此,如果将所有内容隔离开来感觉更好(并且可能还有很好的理由取决于您的应用程序的构建方式):只需保持这种方式并测量它是否有任何负面影响(我的猜测:它可能赢得了。