同じ「テクスチャメモリ」を異なる次元のテクスチャにバインドする方法を教えてください。同じ「テクスチャメモリ」を異なる次元のテクスチャにバインドする
たとえば、シェーダ内のsampler2DArray
と別のシェーダのsampler3D
を使用してグラフィックカードメモリにデータを2回ロードして保存することなく、2D画像の配列にアクセスする必要があります。
私はこのような何かしたいと思います:
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D_ARRAY, tex);
glTexImage3D(GL_TEXTURE_2D_ARRAY, ...); // allocate & store pixel data
、その後:
glActiveTexture(GL_TEXTURE1);
glBindTexture(GL_TEXTURE_3D, tex); // "reuse" the texture storage with a
// different dimensionality in another
// texture unit
をしかし、最後の行は明らかに無効です。
これを行う方法はありますか?