【发布时间】:2021-03-01 06:17:31
【问题描述】:
我希望在我的应用程序中同时显示多达 3,000 个相同模型的实例 - 但这确实降低了我的计算机速度。实在是太多了。
我知道InstancedMesh 是这样的方式,所以我一直在关注 THREE.js 的示例:https://threejs.org/docs/#api/en/objects/InstancedMesh
这些示例很棒,但它们似乎使用了非常小的模型,这使得很难很好地了解模型大小限制应该是什么。
例如:
-使用的球体here不是导入的自定义3D模型,它们只是IcosahedronGeometry的实例
-this example 中使用的 Flower.glb 模型很小:它只有 218 个顶点。
- 而“飞猴”here 来自 ".json" 文件,所以我不知道该模型有多少个顶点。
相比之下,我的模型有 4,832 个顶点 - 顺便说一下,它被列在我发现它的“低多边形”类别中,所以它并不是特别大。
就文件大小而言,它正好是222kb.
我尝试在 Blender 中缩小它并重新导出它 - 仍然出现在 222kb.
显然我可以采取一些“严厉措施”,例如:
- 尝试重新设计我的 3D 模型并使其更小 - 但这会大大降低它的美感和项目的整体美感
-我可以重新设想或重新设计项目以同时显示 1,000 个模型而不是 3,000 个
等等
但由于我是 THREE.js 和一般 3D 建模的新手,所以我只想先询问社区是否有任何建议或技巧可以在进行如此彻底的更改之前先尝试。
-我正在导入的模型采用 .glTF 格式 - 这是最好的格式还是我应该尝试其他格式?
- 其中的所有网格都作为BufferGeometry 的实例进入浏览器,我认为就内存需求而言这是最轻的——对吗?
为了优化性能,我还需要注意哪些其他事项?Blender 或其他可以减小模型尺寸的 3D 建模软件中的某些设置?
开始这样的事情时要遵循一些一般的经验法则?
非常感谢任何和所有的帮助。
谢谢!
【问题讨论】: