距離で進む — レイマーチング
レイキャストのグリッドの制約を外し、任意の形を扱う逆方向がレイマーチング。形を符号付き距離で持つと、空間の各点から最寄りの面までの距離が分かる。その距離は、面を突き抜けずに安全に進める歩幅でもある。光線をその距離ぶん飛ばしては測り直すと、形に当たるまで効率よく進める。
sphere tracing(球面トレース)は、SDF の値ぶん光線を進める。いる点を中心に半径=距離の球には必ず形が無いので、そのぶん跳んでも飛び越さない。遠くで大きく、面の近くで細かく刻む。John C. Hart が 1996 年に距離関数のレンダリング手法として整理し、Inigo Quilez が Shadertoy で広めた。衝突点で SDF の勾配を取れば法線が出て、光を当てれば陰影が乗る。形が min / max / smin の代数で合成できるのが、ポリゴンと違うところ。
work は円と矩形を smin で融合した塊を、画素ごとにレイマーチでレンダしている。距離で形を持つ発想と、その距離を歩幅にする発想の二段はSDFと双曲にまとめた。逆方向の極北で、ここでようやく本物の法線と陰影、立体が出る。