第20回 深度の読み取りと交差表現
4 / 4 深度の制約とMaskの用途
このステップの目的
深度差による見た目を、物理的な接触判定と区別します。
参照できる面だけが対象
深度Textureへ含まれない半透明物では、期待した境界が出ない場合があります。画面外や遮蔽された裏側の情報も持ちません。この方式は画面上の近接を利用するもので、ゲームの衝突判定の代わりにはなりません。
カメラの角度が変わると、同じ物体の配置でもEye Depthの差は変わります。世界の中で一定の厚みの膜を測る処理とは異なることを意識します。
深度から出力までの順序
text
同じScreen UVでSceneの深度を読む
Sceneの深度を比較用のEye Depthへ変換する
現在の面も同じCamera基準の深度で表す
d = Sceneの深度 - 現在の面の深度
d < 0なら、この接触Maskの対象外にする
それ以外はMask = saturate(1 - d / 正の幅)処理を読むときは、Raw Depthのまま差を取っていないか、幅が0になっていないか、負の差を接触と判定していないかを順に確認します。実機で試す場合は、Cameraの深度取得設定と、対象の面がその深度へ収録される描画条件も先に確認します。
条件を変えた確認
同じMaskを交差発光とSoft Particleの二用途へ使います。Mask=1の場所で、それぞれ明るさとAlphaをどう変えるか説明してください。
考え方の確認
交差発光は明るさを増やす側、Soft Particleは元Alphaへ1−Maskを掛けて0へ減らす側です。距離を求める処理は共有できても、出力への使い方は異なります。
記録する面・深度変換・符号・Mask・出力用途を順にまとめます。
チェックリスト
- 接触が出ない原因をMaskの幅と深度の収録対象に分けて考えられる。
- 変更した条件と、予測・計算した結果を対応付けて説明できる。