2012-04-09 3 views
1

В вершинном шейдере я определить структуру:getUniform терпит неудачу на поле структуры в

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

и объявить экземпляр для одного света

uniform LightSourceParameters light;           

, но когда я пытаюсь получить параметр света , он выходит из строя (я < 0)

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

Я знаю, что не может ссылаться на структуры, но здесь я нахожу точное поле. Что может быть неправильным? ~

ответ

2

Вы используете эту структуру в шейдере? Если нет, то компилятор вполне отвечает своим требованиям по оптимизации формы.

+0

Спасибо, что сработало! Отладка GLSL непростая –

Смежные вопросы