样本,像素和片段之间有什么区别?

时间:2015-07-01 22:54:20

标签: opengl shader

我仍然无法理解样本/像素/片段之间存在的差异。

由于片段着色器按像素执行,我认为片段只是指一个像素,这是正确的吗?任何人都可以给我一个例子和每个人的定义吗?

2 个答案:

答案 0 :(得分:2)

片段着色器为每个片段执行并发出像素。它们非常相似,但不一样。

  

片段是由光栅器生成的值的集合。每个片段代表栅格化基元的样本大小的片段。片段覆盖的大小与像素区域有关,但光栅化可以从每个像素的相同三角形产生多个片段,具体取决于各种多重采样参数和OpenGL状态。将为被光栅化的图元覆盖的每个像素区域产生至少一个片段。 Source

因此,如果完全禁用多重采样/抗锯齿,则每个片段应映射到一个像素。但是如果启用它,将插入多个片段以形成单个像素。

这种区别也可以在OpenGL的渲染管道中看到:https://openglinsights.com/pipeline.html

答案 1 :(得分:1)

像素是屏幕元素。 片段是给定几何图元的对应部分+ - 覆盖像素。 对于抗锯齿(以及更多),可以在像素中拾取多个样本。

像素值是样本值的平均值,来自多个三角形的片段可能对给定像素有贡献。