在顶点着色器中我定义了一个结构:
#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
我知道我不能引用结构,但在这里我引用一个确切的字段。有什么不对? 〜
答案 0 :(得分:2)
您是在着色器中使用该结构吗?如果没有,那么编译器完全有权优化统一输出。