RenderingUnityのシェーダで描画する地点の深度を取得する方法です。参考Unity2019.2.10深度を取得する深度を取得するには、以下のように頂点シェーダでCOMPUTE_EYEDEPTHマクロを使用します。}}COMPUTE_EYEDEPTHの中身COMPUTE_EYEDEPTHはUnityCG.cgincに定義されています。関連するソースコードだけを抜き出すと以下のようになります。UnityObjectToViewPos(pos.xyz);}シンプルにビュー空間におけるZ座標を返しているだけです。座標変換とその用語については以下の記事を参照してください。light11.hatenadiary.com0~1の値に変換する次に深度値を、カメラの位置を0、カメラのFarPlaneを1とする値に変換してみます。UnityではFarPlaneの位置はProjectionParams.zで取得できます。便利なことに、1/FarPlaneの値がProjectionParams.wに格納されています。docs.unity3d.comそのため、深度値に_ProjectionParams.wを掛けるだけで0~1の値に変換できます。»プロフィールUnityエンジニア。グラフィックスへの興味が強めです。インストールから基本的な使い方・注意点まとめ【Unity】【エディタ拡張】テクスチャを指定したUV座標で切り取って保存する【Unity】指定したアセットのAssetBundle名を取得する【Unity】【シェーダ】スクリプトからVP行列を渡してシェーダで座標変換に使う【Unity】【シェーダ】FloatやVectorをリニアライズ対象にするGammaアトリビュート月別アーカイブはてなブログをはじめよう!halya_11さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。