我目前正在第一次学习 three.js 和 3D 图形,并且正在尝试创建一个体素引擎(想想 Minecraft、Infiniminer)。我发现我的脚本占用了大量内存,但我怀疑为什么 - 我创建的每个块都使用一个新的 Mesh 对象,即使其中一些块看起来相同。
我问一些我认识的人,他们是否知道一种更节省内存的方法——他们建议为每种类型的块创建一个网格,并使用矩阵为块的每个实例转换网格(他们熟悉 OpenGL ,但不是这么多的三个.js)。three.js 是否允许这样的事情?如果是这样,你会怎么做,如果不是,还有其他选择吗?
(到目前为止,我的理解是您要渲染的每个项目都需要在场景图中,因此即使多个块看起来相同,您也需要将块的多个副本(具有不同的 x、y、z 坐标)添加到图。我可能错了。)