2011-01-16 19 views
3

OpenGLデプスバッファがどのように機能するのか誤解していたと思いますが、今週は30時間を費やしてコードを書き直しました。私が試したすべてが失敗しました。 OpenGLのAndroid実装で何がエラーになっているのかを見つけて、私の問題を解決しました。Androidデプスバッファ問題:問題が発生した人のためのアドバイス

http://www.opengl.org/sdk/docs/man/xhtml/glClearDepth.xml

無効glClearDepth(GLclampd深さ);:

このAPIのエントリを参照してください。

デプスバッファがクリアされたときのデプス値を指定します。整数 値をとる

  • glClearDepthxは、0-1

  • glClearDepthfをクランプ: 初期値は1

Androidの実装は、このコマンドの2つのバージョンを持っています浮動小数点数 ポイント値、クランプ0-1

glClearDepthf(1)を使用すると、期待する結果が得られます。 glClearDepthx(1)を使用している場合、私が行っていたときとは異なる結果になります。 (1はデフォルト値ですが、引数1を指定してコマンドを呼び出すと結果が異なります)何が起きているのか分かりませんが、深度バッファは何の値からクリアされていましたか私は指定した。

+0

本当に役に立ちました。 –

答えて

3

65536glClearDepthx()に試してみてください。

GLfixedは、S15.16固定小数点であるので、は、2^16または65536で表されます。

また、OpenGL ES 1.1ドキュメントではなく、通常のOpenGLドキュメントにリンクしています。

+0

期待される結果が得られます。ありがとうございました。ドキュメントは本当にはっきりしているはずです。私は、ES 1.1のサイトでも、glClearDepthx()の最大値が1であることを述べています。 –

関連する問題