2012-08-22 45 views
0

在GLES2.0的VertexShader中可以使用struct array uniform吗?是否可以在GLES2.0的VertexShader中使用结构数组uniform?

attribute highp vec4 vPosition; 

struct TestStruct{ 
    highp vec4 v; 
}; 
uniform TestStruct tmp[32]; 

void main() { 
    // test code 
    gl_Position = vPosition + tmp[31].v; 
} 

我收到着色器编译错误。 “
”顶点着色器中的统一变量不适合512向量“

我的GPU是Qualcomm adreno220。

有没有人有关于它的一些信息?
我很困扰。

谢谢。

+0

我检查了我的设备上的着色器代码(使用tegra2 GPU的Galaxy选项卡),它的工作原理...我认为它与GPU相关.. – chrisendymion

+0

感谢您的检查。我也调查了这个问题,并且我同意你与GPU有关。 – user1602722

+0

是的,它是! 检查:http://stackoverflow.com/questions/16739993/passing-custom-type-struct-uniform-from-qt-to-glsl-using-qglshaderprogram/16740817#16740817 –

回答

0

这是可能的。有可能你的数组太大了。尝试一个低于10而不是32的数字。

+0

谢谢您的建议,但我需要使用超过10个单位。 – user1602722

+0

只要尝试看看是否少于10件作品。如果是这样,那么这是一个GPU限制,你必须忍受。 – dragostis

相关问题