计算机图形学中的顶点、图元、片元和像素特别容易混淆,尤其是片元和像素的含义非常接近。查阅了一些资料,自己总结了一下,供学习使用。
-
顶点(vertex):就是字面意思的顶点。
-
图元(primitive):描述对象的几何要素的输出图元,称为几何图元,简称图元。它可以是一个顶点、一条直线段、或者一个三角形、多边形、圆、二次曲线、曲面等。图元由用户及其建立的模型确定,可以说三维模型是由图元所组成的。
-
片元(fragment):先解释一下什么是光栅化,在计算机三维场景中,将三维模型投影成二维平面,也就是将图元投影在屏幕上,比如将三维场景中的三角形投影到屏幕上(它投影到屏幕也是一个三角形),然后确定这个投影的三角形在屏幕上的投影区域覆盖了哪些像素,该过程称为光栅化。片元是光栅化过程的产物,光栅化将一个图元转变成二维图像,每个图像点都包含颜色、深度、纹理等数据,将该点和相关信息称为一个片元。
-
像素(pixel):最终呈现在屏幕上的点,包含RGBA值的图像最小单元。
生成顺序:顶点 -> 图元 -> 片元 -> 像素
那么问题来了,片元和像素到底有什么区别呢,好像它们是一个东西?片元和像素的区别:
片元已经非常接近像素了,但是它仍不是像素,片元包含了比像素更多的信息,比如深度值、法线、纹理坐标等等信息,片元需要通过一定的测试(比如深度测试),才能最终成为我们所看到图像的像素。因此,会出现多个片元竞争同一个像素的情况,而测试最终会选出一个适合的片元,去除掉不必要信息后成为像素。
参考引用: