Передача GLfloat как униформы не удается (IOS) - PullRequest
0 голосов
/ 14 июня 2011

У меня есть шейдер, у которого объявлена ​​следующая униформа:

Равномерный highp float fr;

В моем методе рендеринга он устанавливается соответственно:

GLfloat num = 1.0f;
glUniform1f(glGetUniformLocation(self.Program, "fr"), num);

Но это не устанавливается вообще.Они кажутся довольно простыми, поэтому я не могу понять, почему это не работает.Я использовал правильный синтаксис?

Ответы [ 2 ]

1 голос
/ 14 июня 2011

Может быть, вы не используете это значение fr в шейдерном коде?Тогда компилятор сделает его неактивным единообразным и не включит его в скомпилированную программу, glGetUniformLocation вернет индекс вроде -1 или около того.Проверьте ваш шейдер и какое значение возвращает glGetUniformLocation.

Cheers, Krzysztof Zabłocki

0 голосов
/ 16 июня 2011

Я нашел свою проблему.

Я устанавливал форму перед вызовом программы использования.Для любого, кто найдет этот ответ, убедитесь, что вы вызываете программу use перед установкой униформы для этой программы.

...