1

我正在尝试使用预先计算的速度矢量场来做一些 GLSL 粒子的东西。这些向量场存储为 ~13 个 1024x170 浮点纹理,每个纹理对应于 z 平面中的不同“切片”。理想情况下,我想将它们加载为尺寸为 1024x170x13 的 3D 纹理,以允许在我的着色器中自动插值,但我的本地实现给出 256 的 GL_MAX_3D_TEXTURE_SIZE,这意味着(如果我理解正确的话)我在每个维度中的最大尺寸是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

我的下一步是分别绑定所有纹理,将它们全部独立地传递给着色器,然后在那里进行计算。但是……我在这里叫错树了吗?当然,必须有更好的方法来做到这一点。

4

0 回答 0