OpenGL шейдеры и константы - PullRequest
       20

OpenGL шейдеры и константы

3 голосов
/ 16 марта 2011

Мне нужен доступ к группе постоянных значений в моем геометрическом шейдере GLSL . Я попробовал это так:

const int lookup[HUGE_NUMBER] = int[HUGE_NUMBER](1,32,...)

Это работает ... для некоторого оборудования. На картах ATI я получаю предупреждения о том, что размер моего геометрического шейдера может привести к снижению производительности (звучит разумно). На других картах (NV) шейдер не будет связываться из-за недостатка памяти. Определение константных массивов кажется неподдерживаемым хаком.

Итак, что за путь? Я читал о " постоянных буферах " в конвейере DirectX. Есть ли что-нибудь подобное? Или я должен использовать текстуры?

1 Ответ

5 голосов
/ 17 марта 2011

Вы можете использовать как минимум любой из следующих интерфейсов:

  1. Texture
  2. Единый буферный объект
  3. Текстурный буфер
...