我熟悉顶点和片段着色器,但仍然对片段着色器如何确定顶点着色器输出中的片段数量感到困惑。
如果我有 3 个顶点,并且在 GLSL 中绘制一个三角形基元,则顶点着色器将为每个顶点运行三次,然后片段着色器将运行多次(取决于片段数量,每个片段运行一次)。
我想知道片段着色器是如何确定片段的?它使用 gl_Position 吗?如果我没有在顶点着色器中设置 gl_Position,片段着色器是否仍然能够生成片段?
顶点着色器中每次都必须设置gl_Position吗?
最佳答案
您正在谈论光栅化中称为扫描转换的步骤。 GPU 获取顶点着色器生成的位置并插入它们的属性以生成传递到片段着色器的片段。所以,是的,在顶点着色器中设置 gl_Position 是非常重要的。
将三角形的坐标转换为窗口坐标后,扫描转换会获取该三角形,并根据该三角形覆盖的输出图像上的窗口像素的排列将其分解。 Source.
关于opengl - 片段着色器如何确定顶点着色器输出的片段数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27069881/