1

事前に計算された速度ベクトル フィールドを使用して GLSL パーティクルを実行しようとしています。これらのベクター フィールドは、それぞれが z 平面の異なる「スライス」に対応する ~13 個の 1024x170 float テクスチャとして格納されます。理想的には、これらを寸法 1024x170x13 の 3D テクスチャとしてロードして、シェーダーで自動補間できるようにしたいのですが、ローカル実装では 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

次のステップは、すべてのテクスチャを個別にバインドし、それらをすべて個別にシェーダーに渡し、そこで計算を行うことです。しかし... 私はここで間違った木を吠えていますか? 確かにこれを行うためのより良い方法があるはずです。

4

0 に答える 0