1

テクスチャ (ミップマッピングなし) をフィルタリングし、フィルタリングされたレベルを 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回のパスで行く方法があれば...それはいいでしょう:)

4

1 に答える 1