あなたのZバッファを愛することを学びます

https://www.sjbaker.org/steve/omniv/love_your_z_buffer.html
深度缓冲有16位、24位、32位还有.IF U次に、Z精度ではないが、32ビットZバッファを持っている運十分ですuのための問題であるように見えます。uはあなたのプログラムがポータブルであることを期待しかし、もし、uが良く、それにいくつかの取り払わを与えるだろう。

オブジェクトがどの他の背後に隠されているZバッファ決定するので、Z事項の精度。
uが2つの近くの物体間の距離を解決するための十分な精度を持っていない場合、彼らは互いにランダムを通じて表示されます-時々大ジグザグで、時々ストライプ状に。

ニアクリップ面は、
ニアクリップ面(略しzNear)は、典型的には)(gluPerspectiveなので()またはglFrustumを用いて設定されている-それは直接GL_PROJECTION行列を設定することによって、それを設定することも可能だが。
一部のグラフィックスプログラマは「魅惑」这边とzFar「向こう」那边zNear呼び出します。
そして、それは明らかにされていませんので、あなたが何かをしたいと思います理由-彼らは近くの目にポリゴンが近い平面に対してクリップされたくないので、初心者はしばしば非常に短い距離でzNearを配置します。
近すぎるの目にzNearの位置付けは(ほとんどの場合には)flimmeringの原因である-そしてそれは、なぜ、この文書の残りの部分は説明しています。

Z.の解像度は
どのような人々が頻繁に実現するために失敗すると、ほぼすべてのマシンでは、Zバッファは非直線的であるということです。Zバッファメモリに格納された実際の数は、このようにしてオブジェクトのZ座標に関連している:
z_buffer_value =(1 << N)*(+ B / Z)
ここで:

 N = number of bits of Z precision
 a = zFar / ( zFar - zNear )
 b = zFar * zNear / ( zNear - zFar )
 z = distance from the eye to the object

...とz_buffer_value整数です。

従って精密眼に近く、非常に少ない精度の多くは距離のオフがある- Zは、(ひいてはZの精度)z_buffer_valueの逆数に比例することが、この手段。
あなたは詳細なオブジェクトのためのより良いZ精度を必要とする-あなたは非常に詳細にレンダリングされるように、目の近くにあるオブジェクトを必要とするので、この相互の動作がやや便利です。

ニアクリップ面にめちゃくちゃ細かいディテールの近くを保存する - しかし、この望ましくない結果は、あなたのZバッファのビットの多くが無駄になっているということです。あなたが近いあなたの目に近いクリップを引いた場合は、これまで以上のビットが精度ビット、さらにアウトにかなりの費用で、あなたにその近くにあるものをレンダリングする作業に専念しています。

ほとんどの場合、flimmeringは、ということになる 。あるいはあなたの目からさらにニアクリップ面を移動することで解消-大幅に低減することができる
。この手段があれば、あまりにも近く、その後、近距離での精度を無駄にしていることは何ですか。

結論
は、必ずあなたは耐えることができるよう、眼から遠いようzNearを置きます。

公開された646元の記事 ウォンの賞賛107 ビュー360 000 +

おすすめ

転載: blog.csdn.net/wodownload2/article/details/104840685