2015-09-23 4 views
0

Я пытаюсь передать переменную timeVar (поплавок, первоначально установленный на 0.0), которая меняет мой метод display() с помощью строкиWARN: переменная не может быть привязана (она либо не существует, либо была оптимизирована)

timeVar = time(0); 

в мой фрагмент шейдера. Тогда я делаю это

safe_glUniform1f(h_uTime, timeVar); 

и передать его в моей шейдерной программе как так

h_uTime = safe_glGetAttribLocation(h_program, "uTime"); 

Но я получаю эту ошибку. Пожалуйста помоги!

WARN: uTime cannot be bound (it either doesn't exist or has been optimized 
away). safe_glAttrib calls will silently ignore it. 
+2

'uTime' похоже на форму, но вы запрашиваете местоположение атрибута. Вместо этого попробуйте использовать 'glGetUniformLocation'. – BDL

+0

Это сработало! Благодаря! – user3474409

ответ

2

Поскольку uTime является однородным и не атрибут, используя glGetAttribLocation всегда будет приводить к ошибке. Вместо этого нужно использовать glGetUniformLocation.

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