GLSL:当前绘制调用中的基元数

时间:2016-09-15 10:27:09

标签: opengl glsl

TES着色器提供了一个内置输入变量gl_PrimitiveID​,它是为此绘制调用处理的一系列补丁中当前补丁的索引。

除了设置统一变量外,我如何知道此绘制调用中的补丁总数?为什么没有这样的输入?如果我们已经有gl_NumPrimitives计数器,那么内置gl_PrimitiveID这样的内容似乎很合乎逻辑。

动机:我想基于gl_PrimitiveID​将1D采样器从0.0索引到1.0,这样绘制调用中的第一个原语对应于0.0,最后一个对应于1.0。

1 个答案:

答案 0 :(得分:2)

  

除了设置统一变量外,我如何知道此绘制调用中的补丁总数?

除了设置统一变量之外,你不能这样做。

  

为什么没有这样的输入?

我不是Khronos的一部分,但我推测:

  • 下划线硬件基于流处理。事实上,在一般情况下(例如,当您使用原始重启索引时),您无法真正了解基元的数量,这意味着计算它需要单独的步骤,这将不适合进入当前基于流的架构。

  • 他们正试图将最新的OpenGL版本保持在最低限度。这意味着可以通过现有功能高效实现的任何功能都已用完。