2012-04-09 12 views
1

に失敗:getUniformは私が構造を定義する頂点シェーダでは構造体のフィールド

#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                 

を失敗しでは構造を参照できませんが、ここでは正確なフィールドを参照しています。何が間違っていますか? 〜

答えて

2

シェーダでその構造を使用していますか?そうでない場合、コンパイラは、均一化を最適化する権利の範囲内にあります。

+0

ありがとうございました! GLSLのデバッグは簡単ではありません –

関連する問題