glexrimID在顶点着色器中等效

时间:2015-02-20 18:16:44

标签: glsl

有什么方法可以查询当前顶点属于顶点着色器的原语?我正在使用TBO输出我需要在顶点着色器中访问的一些数据,我可以使用gl_PrimitiveID在片段着色器中访问这些数据并且它工作正常但我找不到在顶点内执行相同操作的方法着色器,gl_VertexID / 3对我不起作用,因为我正在使用glDrawElements。

谢谢你!

路易斯

1 个答案:

答案 0 :(得分:0)

如果您了解顶点着色器调用的工作原理,则无法进行此操作。

虽然必须为基元中的每个顶点计算顶点着色器,但转换的剪辑空间值将存储在转换后的缓存中。结果,由10个不同三角形共享的顶点可能仅被计算一次(使用所述顶点的后续基元将首先击中后T& L高速缓存)。导致顶点计算的图元与顶点着色器调用之间没有明确的关系。

另一方面,几何着色器阶段有gl_PrimitiveIDIn,这可能对你有所帮助 - 你不清楚你想要完成什么。