备注:希望和大家一起交流学习,如果有不同的观点欢迎一起讨论学习,不喜勿喷,谢谢。
unity图形渲染
- 前提
- Mesh
- Mesh Filter
- Mesh Renderer
- 基本属性
- Skinned Mesh Renderer
- 基本属性
前提
unity 中图形渲染组件主要有三种:
- 网格过滤器(Mesh Filter)
- 网格渲染器(Mesh Renderer)
- 蒙皮网格渲染器 (Skinned Mesh Renderer)
但是再学习前面三个组件之前,必须要了解 Mesh 组件。
Mesh
Mesh (网格)也是Unity中的一个组件。在 unity 中你会发现任意一个3D模型表面都会有大量的网格将其包裹起来,并且这些网格是三角形组成的,构成这些三角形的点和边的集合就是Mesh。
Mesh中主要包含以下内容:
- 顶点数组 vertices
- 三角形数组 triangles,采用3个元素表示一个三角形的数组方式,所以数组的长度一定是3的倍数,(和顶点数组中的顶点必须一一对应)
- 顶点的法线坐标信息 normals,(和顶点数组中的顶点必须一一对应)
- 顶点的UV纹理坐标 uv,(和顶点数组中的顶点必须一一对应)
- 颜色信息,(和顶点数组中的顶点必须一一对应)
- 切线信息 tangents,(和顶点数组中的顶点必须一一对应)
- …还有很多这里不再一一列举(感兴趣的可以去看看 mesh 源码)
以下是其源码中的部分定义,这里截出来重点关注一下它的结构类型即可。
(具体内容讲解,后面文章会详细介绍)
Mesh Filter
网格过滤器(Mesh Filter)组件,要用于从你的资源库中获取网络信息(Mesh),并且将其传递到用于将其渲染到屏幕的网格渲染器(Mesh Render)中,此组件的主要目的是确定一个模型的外观信息。
Mesh Renderer
网格渲染器(Mesh Renderer)从网格过滤器(Mesh Filter)中获取几何形状,并且根据物体顶点信息等,进行渲染,将图形渲染到屏幕上。
Mesh Filter 和 Mesh Renderer 必须联合使用,才可以使一个物体被渲染到屏幕上,二者缺一不可,如果缺失任意组件,物体将无法被正常渲染到屏幕上。
如下,只有第一个cube正常显示了,下面两个 cube 因为分别缺少一个组件而没有显示出来。
基本属性
Skinned Mesh Renderer
Skinned Mesh Renderer 是在 Mesh Renderer 的基础上加入了对蒙皮网格的支持,一般主要用于针对人物角色等的渲染。
基本属性
重要属性的作用如下:
- Quality : 定义了一个顶点可以包含多少个骨骼的信息;
- Update When Offscreen : 再屏幕之外时是否需要更新骨骼动画信息;
- Root Bone : 指定蒙皮骨骼;
- Bounds : 模型占用的边框大小;
以上都是简要介绍一下这些信息,后面的文章会慢慢详细介绍这些内容,这篇文章的重点是:
- 了解 mesh 中一些重要的属性和它的结构类型
- 知道在unity 中要想让一个对象绘制到屏幕上,必须要创建两个组件 “MeshFilter” 和 “MeshRenderer” 组件。