Android深度バッファの問題:問題を経験している人へのアドバイス
-
11-10-2019 - |
質問
今週は約30時間を無駄にし、コードを書き、書き直しましたが、OpenGL Depth Bufferがどのように機能するかを誤解したと信じています。私が試したものはすべて失敗しました。 OpenGLのAndroid実装のエラーとなる可能性のあるものを見つけることで、自分の問題を解決しました。
このAPIエントリを参照してください:
http://www.opengl.org/sdk/docs/man/xhtml/glcleardepth.xml
void glcleardepth(glclampd深さ);
深さバッファーがクリアされたときに使用される深度値を指定します。初期値は1です。
Androidの実装には、このコマンドの2つのバージョンがあります。
glcleardepthx 整数値を取得し、0-1をクランプします
glcleardepthf Floating Point値を取得し、0-1をクランプします
使用する場合 glcleardepthf(1) 次に、期待する結果が得られます。使用する場合 glcleardepthx(1), 、私がやっていたとき、あなたは異なる結果を得る。 (1がデフォルト値であることに注意してくださいが、引数1でコマンドを呼び出すと、まったく呼び出さないこととは異なる結果が生成されます。)まったく何が起こっているのかわかりませんが、深さバッファーは何とは異なる値にクリアされていました。指定しました。
解決
合格してみてください 65536
に glClearDepthx()
.
GLfixed
S15.16固定点です 1.0
で表されます 2^16
また 65536
.
また、あなたは通常のOpenGLドキュメントにリンクしました、 OpenGL ES 1.1 ドキュメント。