建模说明
命名规则
- 模型对象、组、虚拟物体可以使用中文名称;
- 不要使用空格和特殊字符、标点符号。如果需要分隔多个单词,可以使用下划线“_”或“-”;
- 在同一个 GLB 模型中不要有重名对象,如有重名对象 Babylon.js 会自动加上序号。
模型尺寸
如果已经将系统单位设置为米,建模时模型最好跟现实世界尺寸相符,以便在加入一个场景时具备统一大小标准。
模型格式
在导出前,将模型转化为可编辑多边形(Editable Poly)形式,或附加编辑多边形(Edit Poly)修改器;需要确保模型有UV坐标。
注意事项
避免物体缩放和非均匀缩放
针对物体整体的缩放操作,尤其是非均匀缩放会使编辑关节时单位不统一,给关节编辑工作带来麻烦;且非均匀缩放过的物体会干扰孩子物体的动画效果,所以无论是在实时程序,还是非实时渲染中的建模缩放都应缩放 Edit Poly 的子元素(点/线/面/体)。
如上两图所示,对父物体Box002应用了非均匀缩放;则在旋转子物体Box001时,它发生了形变,不再是长方体了。
应该采用子元素缩放的形式来改变物体的形状。这样就不会影响它的孩子物体的变换了。
模型结构一致性
在建模初始就应谨慎规划模型的各部件、材质命名,以及父子关系层级结构;在模型修改过程中尽量保证命名、父子关系结构、模型部件轴心位置和方向的一致性;否则在编辑器中相关的关节、材质、动画、音效等信息会失效,可能导致需要重新编辑。
性能优化
尽量减少模型多边形数量
创建基本几何物体如球体、圆柱、圆锥时,注意优化分段数,在表面光滑程度可接受的情况下,尽量减少分段数。如果一个表面为平面,则应只使用一个分段。
如上图,在一些较小零件、占据视野范围不大的部分,提倡采用较少的分段数。因为大分段数带来的平滑感差别并不大,但十分消耗性能。
而上图中,对于平的表面,如果做成右边的形式只会带来性能损耗。
尽量删除物体内部永远不可见的面。
制作需要大量复制的物体时,尤其要注意控制多边形数量。
尽量减少零碎物体个数
尽量合并不需要动画的细碎物体,使用Attach(附加)将其合并。
如上图所示,细碎零件过多,会影响实时程序效率,需要按下图方式合并网格:
单物体内多边形不能太多
在 Max 中,尽量保证单个模型的多边形数量少于1,000,000(100万)三角面,否则可能导致编辑器运行卡顿。