Skip to content
Go back

Reversed-Z in OpenGL

· Updated:

web

拙訳

  • 近くが1、遠くが0になるように深度を使う手法
    • 描画距離が長いとき、floatの精度改善に役立つ
  • クリップ空間が[0,1][0, 1]である必要がある
    • OpenGLの場合、デフォルトでは[1,+1][-1, +1]なので、glClipControlで変更する
    • むしろ、精度やテクスチャ座標との一貫性などにより、[0,1][0, 1]のほうが良い
  • フォーマットはfloatである必要がある
    • fixedではダメ1
  • 深度の範囲を反転させるように設定を変更する
    • クリア値を0にする
    • 比較関数をGREATERにする
    • Z値が反転するように射影行列を修正する2

Footnotes

  1. 訳注:こちらによると、fixedフォーマットもそこまで悪くない様子

  2. 訳注:逆Zのときの射影行列はこちらを参照