前置き 最近は距離関数の事をSDFと表現することが多く見られるようになりました。以後距離関数をSDFと呼んでいきます。SDFはsigned distance fanctionの略です。 何故、符号付にこだわるかについて軽く書きます。第一に負数が存在しないと法線計算で正しく法線が取れない。もう一点はブーリアン演算のSubtractionが正しく機能しない。Subtractionはmax(-d1,d2)とマイナス距離を必要とするからです。法線計算がちょっとおかしいは許容できてもブーリアン演算の方は許容できません。 SDFはlength()とdot()しか使わないで説明していきます。多少の例外はありますが、その度説明します。length()とdot()だけでSDFが出来るのは不思議でしょうがカラクリがあります。それがfold(折りたたみ)です。これを駆使してプリミティブを作っていきます。 今回説