访问基元 id/索引 顶点属于 glsl:vertex-shader



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

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

使用不同颜色为每个多边形着色的其他替代方法是什么?

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

几何着色器按基元运行,因此完全有可能将它们用于此目的。但是,执行每基元操作的最佳方式将取决于您打算执行此操作的确切时间和方式。

最新更新