访问glsl:vertex-shader内部顶点的原始ID /索引

时间:2018-09-13 15:32:14

标签: opengl glsl draw opengl-4

我正在使用glMultiDrawArray命令绘制一组多边形。 我想用不同的颜色给每个多边形上色。 如果可以访问顶点所属的顶点着色器内部的基本索引(或多边形),则可以从数组中查找颜色并设置颜色。

所以我的问题是:是否可以在(顶点)着色器中访问原始索引?

使用不同的颜色为每个多边形着色的其他选择还有哪些?

1 个答案:

答案 0 :(得分:2)

顶点着色器在顶点上运行,而不是在图元上运行(因此命名为;))。因此,他们无权访问任何原始数据。现在,如果每个顶点仅与一个图元相关联,则顶点操作实际上是针对每个图元的。但这通常需要复制大量每个顶点信息,因为大多数网格将在多个图元之间共享顶点。

Geometry shaders按基元运行,因此完全有可能将它们用于此。但是,执行每个基本操作的最佳方法将取决于您打算何时以及如何进行此操作。