そのため、Android で OpenGL ES 2.0 をいじっていましたが、解決できなかった問題が発生しました。事前にお詫び申し上げます。(まだ) 2 つ以上のリンクを投稿することは許可されていないようです。そのため、3 つの画像をここの Photobucket アルバムに入れます。
透明な領域 (「色ガラス」) で囲まれた 3D 環境を作成しようとしています。それが機能するかどうかを確認するために、不透明な立方体も中に入れました. 次の機能を有効にしました。
GLES20.glEnable(GLES20.GL_CULL_FACE);
GLES20.glEnable(GLES20.GL_DEPTH_TEST);
GLES20.glEnable(GLES20.GL_BLEND);
GLES20.glBlendFunc(GLES20.GL_SRC_ALPHA, GLES20.GL_ONE_MINUS_SRC_ALPHA);
画像は次のようになります (スクリーンショット 1)。悪くはありませんが、私が望んでいた方法とは異なります。私が見ている壁は透明であるため、右側の壁だけでなく、背面の (下の) 壁も見えるはずです。
次に、それを見つけてGLES20.glDepthMask(true);
、不透明なオブジェクトを描画する前と透明なオブジェクトを描画する前に使用してみましたGLES20.glDepthMask(false);
。また、不透明なオブジェクトの描画中にブレンドを無効にしました。
結果 (スクリーンショット 2) は、かなりめちゃくちゃに見えます。GLES20.DEPTH_TEST
しかし、透明なオブジェクトを描画している間、深度バッファへの書き込みをオフにするのではなく、完全にオフにするという別のアイデアがありました。
それ(スクリーンショット3)は、私が探している写真に最も近づきました。最終的に後壁と右の側壁が表示されますが、不透明を描画するときに深度テストが無効になっているため、立方体が後壁で部分的に覆われていますが、そうであってはなりません。
私が探している効果を得る方法を知っている人はいますか?