我有一个项目,实际加载和渲染3个不同的场景在网站的三个不同的区域。现在,每次我需要切换场景时,我都会移除画布(一个全三层的侦听器和迭代器),然后从头开始渲染新的场景。
使用渲染器创建一个独特的场景,并在其中加载来自三个不同场景的不同网格、灯光和摄影机,这是一种良好的实践还是有性能优势?
有没有人已经测试过类似的场景?
发布于 2017-05-22 19:15:01
你在找像this这样的东西吗?
如果您正在寻找一次显示一个场景,我认为最好的选择是创建场景并只渲染选定的场景。参见THREE.WebGLRenderer.render()。
发布于 2017-05-23 04:20:42
在性能方面,使用单个渲染器实例和不同的场景/摄影机对象传递给它的render()-call并(如果必要)在您的站点上重新定位renderer.domElement可能会稍微好一些。这样你就不需要有多个画布和渲染上下文,渲染器可以缓存一些与webgl相关的东西。此方法还可以在场景中重用材质等内容。
然而,性能差异应该是最小的,并且只(或至少大部分)初始化开销在最大范围内。100ms (当然这取决于你到底在做什么,但这只是我的猜测)。
因此,如果将所有东西都隔离起来感觉更好(根据你的应用程序的构建方式,可能也有很好的理由):只要保持这种方式,并衡量它是否有任何负面影响(我猜:它可能不会)。
https://stackoverflow.com/questions/44109772
复制相似问题