ピクセルシェーダーを利用して画面の奥行きを画像に記録する際、値を0〜1に丸めるにはどうしたらよいでしょうか?
何も考えずに頂点シェーダーから渡された射影座標のz値をそのまま出力したら画面が真っ白になってしまいました。
そこで射影座標について調べ、z/wにするとよいという情報を得たのでさっそく試してみたのですが、望ましい結果にはなりませんでした。
(見た目は真っ白な画面なのですが白飛びしているわけではなく結果がすべて1になっているようです)
試しに出力をz/1000.fにしてみたところ、ちゃんと奥行きに応じた色が出力されたのですが、適当に設定した係数で正確に1〜0になっているか怪しいのであまり使いたくないです。
(カメラ設定に依存しているものと思ったのですが、nearfarを変えて試しても結果は変化しませんでした。不気味です)
また値が線形(奥行きに比例している)なのか、手前や奥のどちらかに偏って出力されているのかも定かでないのも気に入りません。
浮動小数点の画像を使っているのでデータが損なわれることはない(と思う)のですが、
エフェクトをかける時に調節しづらいため、できれば0〜1で統一したいと思っています。
どうしたらよいのでしょう?