立体库房
Instance实例化几何体 | Merge合并几何体 | |
---|---|---|
Material | 相同 | 相同 |
Geometry | 相同 | 不同 |
单个控制 | 通过索引控制 | 难以实现 |
生成时间 | 快速 | 缓慢 |
渲染性能 | 好 | 更好 |
内存占用 | 极少 | 较多 |
通过这两种合并,可以提升整个场景的性能,两种方案各有利弊,可以在项目中组合使用。在实际做项目时,也许建模师已经将复杂的模型生成了,不再需要通过mergeBufferGeometries进行合并,因此,个人认为常用的提高性能的方式将以instance为主。下面将以立体库房货架模型为例,对优化方案的使用进行说明:
通过上述介绍可知,mergeBufferGeometries使用条件是各部分的material都必须相同,但geometry可以不相同。因此,我们可以使用这个方法去合并货架板面和四个货架腿,由此来生成一个货位单元。
而InstancedMesh的使用条件是geometry和material都必须相同,并且需求中对每个货位的标识也存在单独控制的可能性。那么,我们就可以根据上面已生成的货位单元,来合并出整个货架,分别定义每个货位单元的排、列、层信息。
更新中…
具体实现方式,以及性能优化的处理方法将持续更新……
——坦克大战
—— 立体库房
—— 圣诞树
✅—— 程序员升职记
—— 投个篮吧
——粒子爱心