W バッファに有効な射影行列
W バッファに有効な射影行列
Microsoft® Direct3D® では、ワールド行列、ビュー行列、および射影行列によってトランスフォームされた頂点の W 成分を利用して、深度バッファまたはフォグ エフェクトの計算を深度をベースに実行できる。このような計算では、射影行列を W で正規化して、ワールド空間と等価にする必要がある。つまり、射影行列に 1 ではない (3,4) 係数が含まれる場合、(3,4) 係数の逆数を使ってすべての係数をスケーリングすることで、適切な行列を作成しなければならない。対応していない行列を使うと、フォグ エフェクトと深度バッファが正しく適用されない。「射影トランスフォームとは」で推奨している射影行列は、w ベースの計算に対応している。
次の図は、対応していない射影行列、および同じ行列をスケーリングして視点との相対フォグが有効になるようにした行列を示している。
上の図では、すべての変数がゼロ以外の値であるとする。視点との相対フォグの詳細については、「視点からの相対深度と Z ベースの深度」を参照すること。w ベースの深度バッファリングについては、「深度バッファ」を参照すること。
注 Direct3D では、現在設定されている射影行列を使って w ベース深度の計算を実行する。したがって、アプリケーションで Direct3D トランスフォーム パイプラインを使わない場合であっても、目的の w ベース機能を取得するために適切な射影行列を設定しておく必要がある。