getUniform在结构字段上失败

时间:2012-04-09 15:53:57

标签: opengl

在顶点着色器中我定义了一个结构:

#version 110                                                                 
struct LightSourceParameters {                                               
    vec4 ambient;                                                            
    vec4 diffuse;                                                            
    vec4 specular;                                                           
    vec4 position;                                                           
};                                                                           

并声明单个灯光的实例

uniform LightSourceParameters light;                                         

但是当我试图获得光的参数时,它失败(i <0)

name = "light.ambient"                                                       
GLint i = glGetUniformLocation(program, name );                              
// i == -1                                                                   

我知道我不能引用结构,但在这里我引用一个确切的字段。有什么不对? 〜

1 个答案:

答案 0 :(得分:2)

您是在着色器中使用该结构吗?如果没有,那么编译器完全有权优化统一输出。