?

Log in

No account? Create an account
22 май, 2009 @ 18:41 Вопрос по передаче uniform переменной
Написал простенький шейдер на GLSL, завёл в нём переменную.

uniform vec4 quaternions[32];
uniform vec3 offsets[32];

Шейдер грузится, компилится и линкуется. Но униформ из прграммы не передаётся:

int loc=glGetUniformLocationARB(m_hProgram,pszName);

if(loc<0)return false;

Ну вот loc всегда ==-1 и привет. m_hProgram в порядке, имя "quaternions", передаю после бинда шейдера.

Братцы, подскажите пожалуйста, в каком хотя бы направлении копать?
gekisai:
[User Picture Icon]
From:vshabanov
Date:Май, 22, 2009 17:26 (UTC)
(Ссылка)
Попробуй "quaternions[0]", на ATI есть такие беды
(Ответить) (Ветвь дискуссии)
From:gekisai
Date:Май, 26, 2009 17:20 (UTC)
(Ссылка)
Пробовал. Тем более что у меня GF8600...
(Ответить) (Уровень выше) (Ветвь дискуссии)
[User Picture Icon]
From:alariq
Date:Июнь, 3, 2009 13:50 (UTC)
(Ссылка)
а ты ее в программе используешь? в смысле оно на результат влияет? потому что если нет то может компилер соптимизировал и ее там нету. Хотя вообще такого быть не должно, но помню как-то раньше на очень старой видяхе (ATI9600XT) наблюдал такое на GLSL :( не знаю из-за оптимизации или нет, но если переменная на результат не влияет то её как бы и нету
(Ответить) (Уровень выше) (Ветвь дискуссии)