摘自:https://www.jianshu.com/p/e0c7c64bac22
顶点、图元、片元、像素在讨论GPU渲染流程的时候经常提到,并且容易混淆,这里简述一下他们之间的区别。
首先他们的生成是有先后顺序的:
顶点>图元>片元>像素
概念区别:
-
顶点。模型的最小划分
- 图元。图元是由顶点组成的。一个顶点,一条线段,一个三角形或者多边形都可以成为图元。
- 片元。片元是在图元经过光栅化阶段后,被分割成一个个像素大小的基本单位。
片元其实已经很接近像素了,但是它还不是像素。片元包含了比RGBA更多的信息,比如可能有深度值,法线,纹理坐标等等信息。
片元需要在通过一些测试(如深度测试)后才会最终成为像素。
可能会有多个片元竞争同一个像素,而这些测试会最终筛选出一个合适的片元,丢弃法线和纹理坐标等不需要的信息后,成为像素。
- 像素。最终呈现在屏幕上的包含RGBA值的图像最小单元就是像素了
Unity Shader : 顶点着色器Vertex 、片元着色器/Fragment
在Unity中有3种Shader(其实就是三种不同的写法):
- Surface Shaders 表面着色器
- Vertex/Fragment Shaders 顶点/片断着色器
- Fixed Function Shaders 固定管线着色器