地図/幾何/SDFと双曲

符号付き距離 — 形を距離で持つ

形をピクセルの塗りつぶしとして持つ代わりに、全空間の各点から形の境界までの隔たりを返す関数として持つ。外なら正、中なら負、境界でちょうど 0 になる。

符号付き距離場(signed distance field、SDF)。空間の各点に、最も近い境界までの距離を符号付きで割り当てる関数。値の符号が内(負)と外(正)を分け、絶対値がどれだけ離れているかを表す。形を画素の集合でなく一本の式で持てるので、合成・変形・レイマーチがすべて距離の代数として書ける。基本形ごとに距離関数が知られていて、円や球は最も単純な部類にあたる。

円がいちばん簡単で、中心までの距離 − 半径 がそのまま符号付き距離になる。距離そのものを濃淡に焼き、0 をまたぐ等値線を太く描いた。中心が暗く、離れるほど明るく、半径のところで一本の輪が出る。半径が脈打つと、輪が広がったり縮んだりしながら濃淡ごと動く。

中身は sdCircle 一行と、Math.abs(d) < 3 で境界の近くだけ暗く落とすところ。距離を絶対値にして塗ると、中も外も境界からの隔たりで同じ濃淡になる。符号を見れば内か外かが分かるが、塗りには出していない。等値線が一本きれいに出るのは、距離が 0 を横切る場所が形のふちと一致するから。半径が変わると輪の大きさだけが変わって、距離場の中心は動かない。