diary.naysok.org




200512

雑感

朝起きて、コートのクリーニングを出しに外出した。もう少し部屋の荷物を片付けたい。

部屋の環境整備欲の高まりに合わせて、浴室の掃除を一気に行う。壁や床をちゃんと磨くと浴室全体の白さが増したように感じる。月一くらいでちゃんと掃除したいと思う。

Axolotl をいじくる。自分で昨日までやっていたものと似ていて、それぞれの入力で距離を計算し足し合わせる。メッシュ化のマーチングキューブ(?)の計算も早くすごいなと思った。僕の実装と明らかに違う点が一つあり、解像度を入力して格子点の計算をするのは最後のメッシュ化のところで、足し合わせのコンポーネントではでは内部的に特に何もしていないように見える。距離として出力されているものは構造体的なもので、おそらく足し合わせコンポーネントでは計算はせず式の連結だけを行い、メッシュ化の時点で格子点を計算し足し算されているのだろう。

計算が早くすごいなと思って、GitHub にて公開されているソースコードを読む。Python のコードが公開されていて、数を見る限り、コンポーネントそのもののコードではないので、コンポーネントの実装を想像しながらコードを読む。ざっくり読む感じ、ジオメトリを扱うプログラムから、SDF (Signed Distance Fields) というものを出力し、 iOctree というプログラムで Subdivided Octree に変換し、iMarchingCubes というプログラムでメッシュ化している。Signed Distance Fields は、符号付き距離場というもので、Octree は、八分木という計算軽量化の手法らしい。

ソースは MIT ライセンスなので、書き換えて Rhino ではないところでも使ってもいいと思う。プログラムの転用や書き換えについてや、細かな技術の調査は、また今度時間のある時に掘り下げようと思う。

積みタスク



back