iPhone上的查找表/调色板着色器

时间:2010-06-23 13:49:04

标签: iphone graphics opengl-es shader glsl

我有一个片段着色器,其中包含以下内容:

const lowp float colors[8] = float[8]( // line 12
    0,0,0,1,
    1,0,0,1
);

但无法编译:

ERROR: 0:12: 'array of float' : array type not supported here in glsl < 120 
ERROR: 0:12: 'array of float' : constructor not supported for type 
ERROR: 0:15: 'array of float' : no matching overloaded function found 
ERROR: 0:12: 'const lowp float' : cannot declare arrays of this type 
ERROR: 0:12: 'colors' : redefinition 

如何在GLSL中定义查找表?输入纹理具有枚举值,每个值我想要映射到不同的颜色。

2 个答案:

答案 0 :(得分:2)

您可以使用1D纹理作为查找表。

答案 1 :(得分:1)

阅读spec,第4.1.9节:

“在着色器中没有在声明时初始化数组的机制。”