デプス値

depth-value.png

カメラ座標から取ってくる、デプスっぽい値

ローカル座標×モデルビュー行列
カメラ座標になります
そのカメラ座標のzの値を見てみると、通常見えてる物は負の値になってると思います。
正負反転させると、デプス値っぽい値が取れます。
ここでの値は、カメラからの距離です。
注意しないといけないので、カメラからの円心状に広がる距離ではなく、
ニアー面と平行なデプスの値と言うことです。
見えてる範囲のものは

「値-near値」〜「far値」

これを、正規化するには、nearとfarの値を使いましょう。
もし、ニアーでの値0,ローカル座標の原点を1,farでの値2になるような
デプスパラメータのようなものを作りたいならば、

(デプス値-near値)/(カメラとの距離値-near値)

です。
あるいは単純に

デプス値/カメラとの距離値

でもローカル座標の原点を1にすることが出来ます。

正規化デバイス座標から取るデプス値

正規化デバイス座標のzの値はnear〜farまで-1〜1に正規化されていて、
扱いやすいと思います
カメラ座標から取ってくる値と違ってはじめから正規化されているのが利点です。
しかし、投影行列もかけ算しないといけないため、計算コストが少し多くかかります。

シェーダ内でやる場合

サポートサイト Wikidot.com