私はクラスの宿題として作成した既存の3Dレンダラにシャドー機能を拡張しています。私は2パスzバッファアルゴリズムを実装しようとしています。私はすでに最初のパスをして深さマップを作成しました。しかし、問題は、私はスクリーンスペースで私のラインをラスタライズするので、深さマップのz値とフラグメント座標のz値の比較が画像空間で行われるので、座標をイメージスペースに戻さなければならないということです。ワールド空間逆投影の視点
Iは、次の形式で空間変換行列を格納するスタック実装を使用:
は[XSP] * [XPI] * [Xiw] *(x、y、z)は、ワールドスペース= xに座標Y、XSP画面空間 におけるZ - 斜視画面 にXPI - 画像斜視 にXiw - 世界ここ画像
に、スタックの底部は第二、XSPはXPIを乗じ含ま底に、XSPを含有します、三番目から一番下まではXsp * XpiにXiwを掛けた結果を含みます.....
今、私は画像空間のx、y、zだけを()(ワールドスペースのX、Y、Z)したいので、ワールド空間でx、y、zを得ることは私のために働くでしょう... Isそれは、各行列の逆行列を掛けて、その結果にスクリーン空間のx、y、zを掛け合わせると実現できますか?私が意味する
は、私は は、それが戻って世界に私を取得します
[XSP]逆* [XPI]逆* [Xiw]逆変換を行うには、X、Y、画面スペースのZでこれを乗算したいですスペース ??
2つの行列の積を反転するときは、 - ([A] [B])inverse = [B] inverse * [A] inverseを反転する必要があることに注意してください。 –