说明:
本片文章是对处理人脸识别时对已有网格信息重建时学习总结的一点对网格的认识,比较基础,O(∩_∩)O哈哈哈~
Mesh 网格
网格(meshes)包括顶点和多个三角形数组。
三角形数组仅仅是顶点的索引数组,每个三角形包含三个索引。
每个顶点可以有一条法线,两个纹理坐标,及颜色和切线。虽然这些是可选的,但是也可以去掉。所有的顶点信息是被储存在单独的同等规格的数组中,所以如果你的网格(mesh)有10个顶点,你同样应该有大小为10的数组来存储法线和其它属性。
创建一个空网格
建立一个可使用的网格:
应该总是按照这个顺序来做:
- 为顶点数组赋值
- 为三角形数组赋值
修改网格:
每帧修改定点属性
- 获取顶点数组
- 修改它们
- 把它们放回网格
MeshFiter:网格过滤器
此类可以访问网格过滤器所属的网格对象。
使用这个作为一个程序的网格接口。
绘制一个简单的三角形网格:
如下所示:
Mesh Renderer:网格渲染器
网格渲染器从网格过滤器获得几何形状,并且根据物体的Transform组件的定义位置进行渲染。
Mesh.Clear 清空
清空所有顶点数据和所有三角形索引你应该在重新建立三角形数组前使用这个函数。
Mesh.uv UV贴图
网格的基础纹理坐标Mesh.triangles 三角形
在网格里,一个包含所有三角形的数组。这个数组是包含顶点数组索引的三角形列表。三角形数组的大小是3的倍数。顶点可以通过简单的索引同一顶点来共享。如果网格包含多个子网格(材质),三角形列表将包含所有子网格的所有三角形。当你赋值三角形数组,subMeshCount设置为1。如果你想要有多个子网格,使用subMeshCount and SetTriangles。
建议先赋值顶点数组之后再赋值三角形数组,为了避免越界的错误。
Mesh.vertices 网格顶点
返回一个顶点位置的数组值,或者为一组新的顶点位置数组赋值。网格中顶点数量是通过赋予一个不同数量的顶点数组来改变。注意,如果你调整了顶点数组的大小,那么所有其他顶点的属性(法线,颜色,切线,纹理坐标)将自动地调节大小。在为顶点赋值时,如果这个网格的顶点有没有被赋值的那么RecalculateBounds将自动被调用。
Mesh.normals 网格法线
网格的法线
如果网格不包含法线,一个空的数组将会被返回。
Mesh.Optimize 网格优化
显示优化的网格。这个指令也许会需要一段时间,但是会使几何体现实的更快。例如:它从三角形中形成三角形带。如果你从头创建一个网格并想在运行的时候取得更好的运行时性能面而不是较高的加载时间,你应该使用它。它三角带化你的模型并为每个顶点缓存位置优化三角形。对于导入的模型你不应该调用这个函数,因为导入已经做过了。
Mesh.vertexCout顶点数
返回网格中顶点的数量(只读的)