Использование больших 3D текстур в pyglet

Я пытаюсь сделать кое-что из частиц GLSL с предварительно вычисленными векторными полями скорости. Эти векторные поля сохраняются в виде ~13 текстур с плавающей точкой 1024x170, каждая из которых соответствует отдельному "срезу" в плоскости z. В идеале я хотел бы загрузить их как трехмерную текстуру с размерами 1024x170x13, чтобы разрешить автоматическую интерполяцию в моем шейдере, но моя локальная реализация дает GL_MAX_3D_TEXTURE_SIZE 256, что означает (если я правильно понимаю), что мой максимальный размер в каждом измерении 256, так что это не сработает.

Итак, мой следующий шаг - попытаться использовать GL_TEXTURE_2D_ARRAY и выполнить интерполяцию между плоскостями в шейдере. К сожалению, pyglet не предоставляет эту функциональность (??):

Traceback (most recent call last):
  File "particle_trace.py", line 67, in <module>
    load_vectortex3d(f, tex)
  File "particle_trace.py", line 56, in load_vectortex3d
    glBindTexture(GL_TEXTURE_2D_ARRAY, tex)
NameError: global name 'GL_TEXTURE_2D_ARRAY' is not defined

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

0 ответов

Другие вопросы по тегам