三、对象处理
3.3 网格对象(Meshes)
本节介绍网格类(Mesh),包括与Mesh类紧密相关的一些知识,如纹理贴图等。
• Mesh网格的特点
Mesh类是三角网格类,也就是说它的面片全部是三角形,与之相对应的物体对象类为TriObject。MAX中的一切可渲染的对象最终都必须转换为三角形网格类型,因为无论多复杂的物体,底层也只能绘制三角形。2.0版本后,提供了另一个MNMesh类来处理网格,该类可以完成很多复杂的拓扑编辑,并且可以支持三条边以上的面片。应该来说,MNMesh在实际使用中非常有用也非常方便。当然,在最终使用MNMesh类处理后仍然要将处理后的结果转换为Mesh类。
从一个结点中可以使用INode::EvalWorldState()方法,获取几何物体的TriObject对象,而mesh是TriObject的一个数据成员,调用TriObject::GetMesh()即得到对象在该状态下的三角网格。
• 构建Mesh网格对象的规则(Rules when Building Meshes)
开发者在构建网格时应该遵循这些简单但非常重要的规则,以便修改器在几何管线中能够正确的处理网格。这六条基本的规则是:
1. 在同一个方向上一条边最多只能被引用一次;
2. 避免面片的自相交情况;
3. 在创建面片时不要时面片的顶点出现重合;
4. 不要用一个点来联接两个