如何在Tessellation Control and Evaluation着色器中解释gl_PrimitiveID?

时间:2014-06-13 05:54:55

标签: opengl glsl opengl-4 tesselation

OpenGL规范。说:

  

变量 gl_PrimitiveID 填充了处理的基元数   通过生成输入顶点的绘图命令。由绘图命令生成的第一个图元编号为零,并且在处理每个单独的点,线或三角形图元之后递增图元ID计数器。使用原语重启索引重新启动原始拓扑对原始ID计数器没有影响。

不幸的是,我不太明白。

如果我使用顶点数= {strong> 32 的GL_PATCHES进行绘制调用,请所有 32 顶点都gl_PrimitiveID = 在Tesselation Control着色器中

Tessellation控件着色器仍然输出Patch,而Patch是单个基元。

假设当在Tessellation Evaluation着色器中将此贴片细分为三角形时,每个 th 顶点的gl_PrimitiveID = n <是正确的吗? / SUP> / <子> 3

如果没有,请解释他们的价值观。

1 个答案:

答案 0 :(得分:2)

OpenGL wiki seems to agree

  

<强> gl_PrimitiveID

     

此渲染命令中当前补丁的索引。

如果你需要确认,那么在规范中查看这个应该不难。

我猜测渲染命令中的补丁数量只会在您处理足够的顶点并启动新补丁时发生变化。