Unity3D 实用技巧 - 深度学习Mesh

本文深入探讨了Unity中的Mesh概念,解释了Mesh在3D渲染中的作用,以及如何通过MeshFilter和MeshRenderer组件进行操作。Unity中的Mesh包含了顶点坐标、法线、纹理坐标和三角形序列等关键属性。实战部分展示了创建和修改Mesh、应用到游戏特效、虚拟角色等方面的基本操作,并提供了多个开源项目链接作为实战参考,涉及网格体素化、骨骼同步、面部识别等多个应用场景。

第一部分:概念初析,快速理解

今天我们来唠唠Mesh这个熟悉而陌生的代名词,当然我们不是说网络模型中的Mesh,而是渲染中Mesh 网格。Mesh,俗称网格。
在计算机图形学中 , Mesh是指模型的网格 ,我们都知道,点连成线,线连成面,面连成体,3D模型是由多边形拼接而成,而多边形实际上是由多个三角形拼接而成的,所以在三维空间中,构成这些三角形的点和边的集合就是Mesh。而通用的一些三维软件可以神奇快速生成Mesh,例如:3DMax、Maya、Cinema 4D、Blender等三维软件。针对网格的属性,建模软件的3D物体,或者程序生成的网格,网格由图形硬件(GPU Graphics Processing Unit图形处理单元)构成来绘制复杂的材料/东西。
接着,我们深度来认识 Unity中的Mesh ,我们都知道Unity是基于Mesh去做渲染的,也就是说在Unity里看见东西的话,就必须要使用Mesh,一般Unity模型的信息也会存到Mesh。Unity其实也提供一个Mesh类,允许脚本来创建和修改,通过Mesh类能生成或修改物体的网格,能做出非常酷炫的物体变形特效。其原理是:网格(Mesh)代表的是单个的可绘制实体,我们可以先来定义一个我们自己的网格类;Mesh filter 网格过滤器从资源中拿出网格并将其传递给MeshRender,用于绘制;导入模型的时候,Unity会自动创建一个这样的组件,Mesh 是网格过滤器实例化的Mesh, Mesh中存储物体的网格数据的属性和生成或修改物体网格的方法。
Mesh是Unity内的一个组件,称为网格组件。
Mesh主要分为三大部分:
  • Mesh 网格
  • MeshFilter 网格过滤器
  • Mesh Renderer 网格渲染器
Mesh: 是指模型的网格,建模就是建网格。细看Mesh,可以知道Mesh的主要属性内容包括顶点坐标、法线、纹理坐标、三角形绘制序列等其他有用属性和功能。因此建网格,就是画三角形;画三角形就是定位三个点。
Mesh Filter: 内包含一个Mesh组件,可以根据MeshFilter获得模型网格的组件,也可以为MeshFilter设置Mesh内容。
Mesh Render: 是用于把网格渲染出来的组件。MeshFilter的作用就是把Mesh扔给MeshRender将模型或者说是几何体绘制显示出来。
Mesh的属性: Unity中mesh主要通过Vertexs(顶点)、Normals(法线)、Triangles(三角面)、UVs(uv坐标)这四个部分数据生成。
  • 顶点坐标(vertex)
  • 法线(normal)
  • 纹理坐标(uv)
  • 三角形序列(triangle)
顶点坐标(vertice): 顶点坐标数组存放Mesh的每个顶点的空间坐标,假设某Mesh有n个顶点,则Vertex的size为n个。
法线(normals): 法线数组存放Mesh每个顶点的法线,大小与顶点坐标对应,Normal[i]对应顶点Vertex[i]的法线。
纹理坐标(uv): 它定义了图片上每个点的位置的信息,这些点与3D模型是相互联系的, 以决定表面纹理贴图的位置。uv是网格的基础纹理坐标,就是将图像上每一个点精确对应到模型物体的表面,uv[i]对应vertex[i] ; uv2: 网格设定的第二个纹理坐标。
切线(tangents): 网格的切线数组。
网格的包围盒(bounds): 网格的包围盒。
顶点颜色(colors): 网格的顶点颜色数组。
三角面(triangles): 包含所有三角形的顶点索引数组、vectexCount 网格中的顶点数量(只读的)、subMeshCount 子网格的数量,每个材质都有一个独立的网格列表。
骨骼权重( bonesWeights): 每个顶点的骨骼权重。
绑定姿势(bindposes): 绑定姿势,每个索引绑定的姿势使用具有相同的索引
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值