第05回 SDFによる形状の表示と合成
3 / 4 二つの距離場の合成
このステップの目的
内側を正にする規約に合わせて、残す領域を選びます。
二つ目の円の準備
前の距離計算を複製します。中心A=(0.4,0.5)、中心B=(0.6,0.5)、両方の半径を0.25にします。それぞれの距離をdA・dBと呼びます。まず各距離を一つずつSmoothstepのInへつなぎ、左右の円が表示されることを確認します。
和集合と共通部分
どちらかの円の内側を残すにはMaximum(dA,dB)を使います。内側の正の値が一つでもあれば、結果は正です。両方の内側だけを残すにはMinimum(dA,dB)を使います。
| 点の状態 | dA | dB | Maximum | Minimum |
|---|---|---|---|---|
| Aだけの内側 | 0.1 | -0.1 | 0.1 | -0.1 |
| 両方の内側 | 0.1 | 0.05 | 0.1 | 0.05 |
| 両方の外側 | -0.2 | -0.1 | -0.1 | -0.2 |
Maximumの出力をSmoothstepのInへ接続して二つの円がつながる表示を確認します。次にMinimumへ切り替え、重なった部分だけ残ることを確認してください。
重ならない二つの円
中心を(0.2,0.5)と(0.8,0.5)、半径を0.2へ変える前に、Minimumの結果を予想します。
考え方の確認
二つの円に共通する内側がないため、基本の硬い境界の判定では何も残りません。Maximumなら左右の円が残ります。Softnessによる境界の幅と、内側の領域そのものは区別します。
中心を(0.4,0.5)・(0.6,0.5)、半径を0.25、出力をMaximumへ戻します。
チェックリスト
- MaximumとMinimumを内外の数値から選べる。
- 重ならない形の共通部分を予想して確認した。