第20回 深度の読み取りと交差表現
3 / 4 深度差から接触Maskへの変換
このステップの目的
比較可能な距離を0〜1の効果の強さへ対応させます。
差が小さい部分を明るくする
Sceneの深度から現在の面の深度を引いた差をd、効果の幅をwとします。wは正です。手前にある面を対象に、dが0以上の場所で「1−d÷w」を0〜1へ制限すると、接触に近い場所ほど1になります。
wが0.5なら、dが0、0.25、0.5でMaskは1、0.5、0です。dが負の場所は、現在の面がSceneの表面より奥にある条件なので、この接触Maskの対象から外します。負の値をそのまま制限して1にする誤りを避けます。
光らせるか消すか
交差発光ならMaskが大きい場所を明るくします。Soft Particleなら逆に、その近接部分のAlphaを減らします。同じ距離差を使っても、表示へ渡す意味が逆になります。まず白黒のMaskを読み、その後に出力の役割を決めます。
条件を変えた確認
Sceneの深度5、現在の面4.75、幅0.5のMaskを求めます。次に現在の面だけを5.2へ変えたとき、この接触Maskの対象にするか判断してください。
考え方の確認
最初は差0.25、Mask=0.5です。後者は差−0.2なので対象外です。負の差を単にsaturateへ渡して接触と判定しません。
差の符号を先に判定する順序を残します。
チェックリスト
- 幅0.5の三つのMaskを求め、発光とFadeで使い方が異なることを説明できる。
- 変更した条件と、予測・計算した結果を対応付けて説明できる。