纳金网

标题: Unity3D技术之用程序生成网格几何体-使用网格类浅析 [打印本页]

作者: 狂风大尉    时间: 2015-1-31 23:19
标题: Unity3D技术之用程序生成网格几何体-使用网格类浅析

使用网格类

网格 (Mesh) 类是对象网格几何体的基本脚本界面。它用数组来表示顶点、三角形、法线和纹理坐标,还提供了大量其他有用属性和功能来协助网格生成。


访问对象的网格

网格数据通过使用网格过滤器 (Mesh Filter) 组件来附加到对象上(对象还需要网格渲染器 (Mesh Renderer) 来显示几何体)。使用熟悉的 GetComponent 函数来访问该组件:

  1. var mf:MeshFilter = GetComponent(MeshFilter);// Use mf.mesh to refer to the mesh itself.
复制代码
添加网格数据

网格 (Mesh) 对象拥有顶点及其相关数据(法线和 UV 坐标)和三角形数据的属性。顶点可以任何顺序提供,但法线和 UV 数组必须有序,这样索引均与顶点对应(即法线数组的元素 0 提供顶点 0 的法线,等等)。顶点为 Vector3,代表对象局部空间的点。法线为标准化 Vector3,再一次在本地坐标中代表方向。UV 指定为 Vector2,但由于 Vector2 类型没有称为 U 和 V 的字段,您必须在心里将它们分别转换为 X 和 Y。


三角形指定为在顶点数组中充当索引的整数三元组。数组不使用特殊类来表示三角形,而只是一个简单的整数指数列表。每个三角形都是以三个为一组,因此,前三个元素定义第一个三角形,后面三个元素定义第二个三角形,并以此类推。


三角形的一个重要细节是拐角处顶点的顺序。尽管从哪个拐角开始并不重要,但顶点应予以排序,这样当俯视三角形的可见外表面时,各个拐角会按顺时针转动。







欢迎光临 纳金网 (http://www.narkii.com/club/) Powered by Discuz! X2.5