Glsl 打开2.0-顶点着色器中的顶点索引

Glsl 打开2.0-顶点着色器中的顶点索引,glsl,opengl-es,Glsl,Opengl Es,我有一些我无法控制的数据(由客户提供),其中规定: 顶点 指数 一个“调色板”(vec4的8种不同颜色,共32个值) “VertexColor”数组,用于定义哪些顶点应具有应用于它们的调色板中的颜色。e、 g.0,01280在该数组中表示,“调色板中的颜色“0”应应用于索引介于0和1280之间的所有顶点。” 在我看来,当我定义我的GLSL顶点着色器时,我需要能够访问当前顶点的索引,以便我可以使用vertexColors从colorPalette中确定要应用的颜色,并通过使用不同的颜色传递到片段着

我有一些我无法控制的数据(由客户提供),其中规定:

顶点

指数

一个“调色板”(vec4的8种不同颜色,共32个值)

“VertexColor”数组,用于定义哪些顶点应具有应用于它们的调色板中的颜色。e、 g.0,01280在该数组中表示,“调色板中的颜色“0”应应用于索引介于0和1280之间的所有顶点。”

在我看来,当我定义我的GLSL顶点着色器时,我需要能够访问当前顶点的索引,以便我可以使用vertexColors从colorPalette中确定要应用的颜色,并通过使用不同的颜色传递到片段着色器

如何找到当前顶点的索引

谢谢你的帮助

菲尔

顺便说一句,我对OpenGLE2.0非常陌生,以前从未使用过OpenGL或OpenGLES,我的所有指导都来自“OpenGLE2.0编程指南”以及我在互联网上能找到的任何东西


p.p.S.在我看来,Open GLES 1.x看起来容易多了:)

当需要应用新调色板时,您是否有可能直接应用不同的着色器,而不是尝试计算可能不可用的顶点索引?老实说,我不相信德国劳埃德船级社提供了您正在寻找的索引,但我决不是这方面的专家。我会按照我的建议,使用多个着色器,并确定其他一些逻辑平均值来应用这些值。

使用
gl\u VertexID
内置属性

老实说,我不知道如何在颜色数组中搜索颜色(给定索引)

相反,我将为顶点颜色创建一个特殊的缓冲区对象,并在其中绘制颜色缓冲区(绑定为目标纹理缓冲区对象)。在这种情况下,几何体着色器将生成具有所需颜色的线条条,如下所示: -在0处创建点 -在1280处创建点 -从调色板获取颜色,将其传递给片段着色器


这个操作对于硬件来说非常便宜,根据您提供的调色板数据,可以为每个顶点提供精确的颜色。

新的任天堂平台工作或者手机乐趣?