2
GPUが位置のためにクリップスペースZをWで分割するのはなぜですか?
背景: 正規の頂点変換を少し変更するだけで、線形深度バッファーを使用するのが非常に簡単であることがわかりました。最も簡単な方法は、https://www.mvps.org/directx/articles/linear_z/linearz.htmの下部にあります。 ただし、注意すべき点は、ニアプレーンまたはファープレーンに対してクリップする必要のない三角形に対してのみ機能することです。(そして、頂点シェーダーでパースペクティブ分割を実行する別の解決策は、他の4つの錐台平面に対して同様の問題を引き起こします。) クリッピングは4つのクリップ空間座標すべてで機能するために線形補間を必要とするため、頂点シェーダーのみを使用して線形深度を処理することは不可能だと思います。しかし、その理由はすべてZがWで除算されることにあります。 なぜそれが行われるのですか?XとYはカメラからの距離で分割する必要がありますが、Z座標はNDCボックスに完全にフィットするために分割されません。