Мне нужно получить доступ к набору постоянных значений в моем шейдере геометрии GLSL. Я пробовал так:
const int lookup[HUGE_NUMBER] = int[HUGE_NUMBER](1,32,...)
Это работает... для некоторого оборудования. На картах ATI я получаю предупреждения о том, что размер моего шейдера геометрии может привести к снижению производительности (звучит разумно). На других картах (NV) шейдер не слинкуется из-за нехватки памяти. Определение константных массивов кажется неподдерживаемым хаком.
Так что же делать? Я читал о «постоянных буферах» в конвейере DirectX. Есть что-нибудь подобное? Или я должен использовать текстуры?