テクスチャ (ミップマッピングなし) をフィルタリングし、フィルタリングされたレベルを 3D テクスチャに書き込みたいと考えています。私はすでに次のコードで 3D-Texture を作成しました:
glGenTextures(1, &outTexture);
glBindTexture(GL_TEXTURE_3D, outTexture);
glTexParameterf(GL_TEXTURE_3D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexImage3D(GL_TEXTURE_3D, 0, GL_RGBA8, width, height, layer, 0, GL_RGBA, GL_INT, 0);
glBindTexture(GL_TEXTURE_3D, 0);
そして、私は自分のモデルを次のようにレンダリングします:
glFramebufferTexture3D(GL_FRAMEBUFFER, attachment, GL_TEXTURE_3D, outTexture, 0, layer);
entity.render();
フラグメントシェーダーが同時に複数のレイヤーに書き込み、自分がどのレイヤーにいるかを知る方法はありますか? そのようです?
out_color[layer] = vec4(r,g,b,a);
PS:フラグメントシェーダーのどのレイヤーにあるかを知る必要があります(いくつかのフィルタリングとgl_Layerは使用しないでください... OpenGL 4でのみ使用でき、OpenGL 3のみを使用できます)...ユニフォームに書き込むことができ、複数回レンダリングしますが、1回のパスで行く方法があれば...それはいいでしょう:)