OpenGLのデプステスト(ハマり)

なぜかOpenGLのデプステストが有効にならない問題でハマり中。

直方体を連続して配置してマップを描画するようなプログラムを書いてるんだけど、なぜかデプステストが有効にならない症状に悩まされる。

きちんとDEPTH_TESTを有効にしてるし、glClear(DEPTH_BUFFER_BIT)もしてる。glDepthFunc()の値をいじってみても同じ。

2005.02.17 01:29 解決

OpenGL FAQ J
JQ-28: Z方向に異常に長い線を描くと、デプステストが正しく行われなくなってしまうのですが、いったいどうしてなのでしょうか?
A:
視点から非常に遠い物体を表示するために、クリップのFar面を非常に遠くに設定した場合、デプスバッファの精度が落ちて、ポリゴンの前後判定が正しく行われないことがあります。

を参考にして

gluPerspective( 60.0f, w/h, 0.0f, 10.0f );

としてたところを

gluPerspective( 60.0f, w/h, 0.1f, 10.0f );

にすると嘘のように解決。gluPerspectiveのnearは0以上を指定したほうが良いのか。あとnearとfarはあまり離れた値を指定しないほうが良い。
OpenGL DLLのバグ?それともドライバのバグ?ビデオカードの(ry などと疑ってしまった。関係者の方々ごめんなさい。