はじめに
モノがそこに在る場合、視覚では色や形として見えています。モノがあるからといって場ができているとは普段思いません。しかしモノの表面からの距離に着目するSDF(Signed Distance Field)の観点では、そこには場が生じています。TouchDesignerのPOPではそれを可視化することができます。今回はSDFの概念について紹介致します。電荷があると電場が、磁荷があるなら磁場が生じます。モノがあるとSDFが生じているわけですが、これにはモノの表面からの距離の見方を導入する必要があります。ここが電場や磁場とは考えの違うところです。例えば磁場ならコイルに電流を流すと生じます。そしてそれば、空間の性質であるコイルの形、そして空間の媒質の性質である透磁率によって表されます。これに関連した場の作り方を紹介したのが、2026.03.14のblog「フィールドの概念:POPを試す2」でした。ここではfield POPのTransition RangeとTransition Alignが媒質の性質に相当することを述べました。そして形状の高さ方向の値を加工して可視化しました。一方SDFはモノの形だけで(即ち空間の性質だけで)場ができていることを示しています。
SDFとは
Wikipediaをみると「SDFは、与えられた点から特定の形状の境界までの距離を計算します。この距離は、点が物体の内部にある場合は負の値、外部にある場合は正の値、境界上にある場合はゼロになります。これにより、SDFは物体の形状を簡潔に表現することができます。」と記載があります。POPを使って場を表示する前の私の知識もこれだけで、場と結びついていませんでした。以下で話すことを知ってこの文章を読むと、モノの存在が内部と外部と境界とに空間上で分けられるということですから、場のことを言っていることがわかります。それでは具体的な説明をしていきます。
トーラスが作る場
次に示すドーナツの形がトーラスです。

このトーラスの表面からの距離SDFを考えてみます。簡単のためz=0の平面の場合を考えてみます。トーラスの中心までの距離をR、直径をdとします。すると次の図のような位置があることが分かります。

即ち、(x,y)がトーラスの外側の円の外に在る場合、ドーナツの穴に相当する内側の円の中に在る場合、そしてトーラスのチューブの中に在る場合です。トーラスのSDFはトーラスの表面からの距離を指します。上の図ではそれぞれ色をわけて示しています。トーラスのチューブの中の(x,y)が在る場合は、トーラスの中心線より内側か外側かがあるように思いますが、それは直ぐに示しますが絶対値を取ります。こうすることで区別がなくなります。それでは表面からの距離を求めてみましょう。図を見ながら追っていただくと、次の式になることが分かると思います。

ここで重要なのはルートの部分は(x,y)の位置の距離を表しています。つまりSDFは距離の関数になっています。座標の関数になっているのではなく、距離の関数であることが重要です。空間の性質であるトーラスの形が決まり、(x,y)の位置がきまると、原点からその位置までの距離によってSDFは定まります。これが距離という視点からみると、SDFが決まるという意味です。ここではxy平面で説明しましたが、3D空間でも同じです。その場合はzが加わり次の式になります。

それでは、ToucDesignerでトーラスのSDFの場を描いてみましょう。まず最初に映像を見ていただきます。
パーティクルを使って場を可視化した映像です。直ぐに説明しますがパーティクルの動きで表現しているので、粒子はSDFの勾配方向に大きい値から小さい値の方向に動いています。これを式の関係から見てみます。外側へ行くほどSDFは正で大きな値になります。このため、外側からトーラスに対して粒子が速く流れこんできます。トーラスのチューブの所は負の値になり、チューブの中心が一番低く-d/2になります。ですので、ここへ向かって流れ込み、映像としては持ち上がっています。ドーナツ状の中心の穴は値は正ですが、トーラスから離れた外側ほど大きくはありません。ですから勾配は緩やかです。ですのでドーナツの穴からRのに対して緩やかに粒子が動いています。トーラスを置いただけで、距離という観点から眺めると、このような場ができているということに驚きます。表現としては粒子の流れを作ることで表しています。この表し方を解説致します。プログラムは次のようになります。

これはPOPを使ったスタンダードなプログラムです。point generator POPは平面にpointを設定しparticle POPでそのポイントからパーティクルが放出されます。ここからが重要です。particle POPからfeild POP, transferm POPをつなぎ、それをparticle POPにフィードバックしています。このフードバックのネットワークで勾配の動きを作っています。勾配は微分方程式等では差分を使いますが、フィードバックのネットワークで作る点が特徴的です。field POPとtransfer POPのパラメータを次に示します。

左のfieldのField Attribute ScopはPです。これは位置(x,y,z)のことです。そしてModeをTorusにし、トーラスの形を作るパラメータRadiusを設定します。fieldはP即ちパーティクルの位置を扱います。真中の図はSigned DistanceをonにしてDistを使っています。これがSDFのことです。Distを設定するだけでSDFが計算されます。次に右側ですがtransform POPのパラメータでWeight AttributreをDistにしています。つまりウエイトとしてDist即ちSDFを設定します。そしてUniform Scaleを0.98(Scale_factor)にしています。これは2%ずつ全体が縮小するように動くことを意味します。こうして決まったP(位置)をparticle POPにフィードバックしています。このネットワークで

を計算しています。
前の位置に対してDist×(Unifrom Scale – 1)だけ動かしているのです。scale_factorは全体に及ぼしますが、Distはトーラスの表面からの距離に依存しています。この前の位置に対する移動が勾配に当たります。このように粒子の位置の移動を使って場を可視化します。Unifrom Scale=0.98の場合、トーラスの外側はDistは正ですので粒子の移動は負になります。前の位置から縮小されるので、外から内の動き、つまり吸い込んでくるように動きます。チューブの中ではDistは負です。ですので掛け算は正になり前の位置から広がります、ですので拡大する方向つまり湧き出すように見えることになります。ドーナツの穴に相当する部分ではDistは正ですので掛け算は負になります。ただDistの値は外の離れたところより小さい値となるので、吸い込みは小さくなります。
次にトーラスをx軸に対して90°回転した場合を考えてみます。これが次の図です。

断面の図を見ると前の図と随分違うことになりますが、計算式を見ていただくと、これは表面からの距離だけに依存しますので、これまでの計算と変わりません。トーラスの外側が正で内が負、ドーナツの穴の部分は正で値は小さい、ということです。ここからできる場も想像できると思います。二つ湧き出す山ができて周りとドーナツの穴から吸い込まれます。この場合の映像が次です。
それでは、最後に球の場合を検討してみます。これまでの式でdは無いのでd=0となり、Rが球面までの距離となります。従って球の外と内の場合分けになります。球の表面ではSDF=0となり、球の内側で負、外側で正となります。この場合も映像を見ておきましょう。
これらの例でSDFで作る場のイメージがついたのではないでしょうか。
哲学的解釈
この場の表現は哲学的にも次の3つの観点で興味を持っています。一つは、存在そのものが場を作っているということです。これは電荷があるから場ができるといったことではありません。在るということ自体が意味を持つということです。もう一つは「環世界」の観点です。人は色や形でモノを見ますが、このようにSDFの場を位置の動きとして視る生物がいたとしたら、今回のように見えているということです。そして最後は、人を多様な観点から見る見方です。例えば私を映像を作って紹介するという観点でみると、どういう場が作れているだろうか、また、父親という観点から見るとどういう場になっているだろうか、このように存在が様々な観点に対してそれぞれ場を形成するという考えです。場の考えは常に広がりとともにあるので、窮屈な感じがしないのが好きです。
まとめ
モノが在ると、その表面からの距離という観点でみると場が形成されます。これをTouchDesignerのPOPを使い、フィードバックを使った位置の動きによって可視化しました。モノの存在が場を作っていることを示しました。SDF自体は随分前からモノの外と内を区別する方法として知っておりました。しかしPOPを使うことにより場と結びつき、より深く考える機会となりました。

コメント