TES着色器提供了一个内置输入变量gl_PrimitiveID
,它是为此绘制调用处理的一系列补丁中当前补丁的索引。
除了设置统一变量外,我如何知道此绘制调用中的补丁总数?为什么没有这样的输入?如果我们已经有gl_NumPrimitives
计数器,那么内置gl_PrimitiveID
这样的内容似乎很合乎逻辑。
动机:我想基于gl_PrimitiveID
将1D采样器从0.0索引到1.0,这样绘制调用中的第一个原语对应于0.0,最后一个对应于1.0。
答案 0 :(得分:2)
除了设置统一变量外,我如何知道此绘制调用中的补丁总数?
除了设置统一变量之外,你不能这样做。
为什么没有这样的输入?
我不是Khronos的一部分,但我推测:
下划线硬件基于流处理。事实上,在一般情况下(例如,当您使用原始重启索引时),您无法真正了解基元的数量,这意味着计算它需要单独的步骤,这将不适合进入当前基于流的架构。
他们正试图将最新的OpenGL版本保持在最低限度。这意味着可以通过现有功能高效实现的任何功能都已用完。