OpenGLデプスバッファがどのように機能するかを誤解していたと信じて、今週はコードの記述と再書き込みに約30時間を費やしました。私が試したものはすべて失敗しました。私は今、OpenGLのAndroid実装のエラーである可能性があるものを見つけることによって私の問題を解決しました。
このAPIエントリを参照してください:
http://www.opengl.org/sdk/docs/man/xhtml/glClearDepth.xml
void glClearDepth(GLclampddepth);
デプスバッファがクリアされるときに使用されるデプス値を指定します。初期値は1です。
Androidの実装には、このコマンドの2つのバージョンがあります。
整数値を取るglClearDepthx 、クランプ0-1
浮動小数点値をとるglClearDepthf、クランプ0-1
glClearDepthf(1)を使用すると、期待どおりの結果が得られます。glClearDepthx(1)を使用すると、私が行っていたように、異なる結果が得られます。(1がデフォルト値ですが、引数1を指定してコマンドを呼び出すと、まったく呼び出さない場合とは異なる結果が生成されることに注意してください。)何が起こっているのかはわかりませんが、深度バッファーがクリアされて、値とは異なる値になりました。指定しました。