• 曲面の再構築
    最近なんの書き込みもしていなかった。ちょっとした理由がある。8月中の休日はあることに久しぶりに没頭していた。表題からも分かるように曲面の再構築(Surface Reconstruction)のプログラムを書いてはデバックしていた。曲面は大きく分けるとパラメトリックな曲面と陰関数表現に分ける事ができる。一般的にはCADでは前者の形式を使う。主な理由としては数学的な操作が後者に比べて容易な事がある。もっともある種の処理では後者が有利な場合があるがUVパラメータ空間という仮想的な2次元平面処理に置き換えて処理することが可能な場合が多い。さて、そこで曲面を生成する方法としては元ネタとして最も簡単な幾何情報として点群が考えられる。ある種の点群では比較的容易にパラメトリック曲面にフィッティングする事が可能だが地形や芸術作品的な像などはパラメトリック曲面にフィッティングする事ほとんど不可能に近い。もっとも多数の曲面をパッチとして張り合わせることで可能な場合があるだろうがその場合パッチ間の面の接続性が問題になる。
    うまい方法はないものだろうか?そこで登場するのがRBF(Radial Basis Function)による
    フィッティングである。RBFによるフィッティングの結果は陰関数表現になる。基本的にはある種の基底関数の一次結合によって構成される。従って未定係数を求める問題と等価で連立線形方程式を解く問題に帰着する。そのため数値計算処理は非常に単純であるという利点がある。ただし、相手にする点が多くなると大規模連立線形方程式を解く問題になるため問題がない訳ではない。

    球面上にランダムに発生させた点群に対して行った(デバック・TEST過程)の絵が下記です。

    失敗の過程が良く分かると思う。どうしてこうなったのか?原因は幾つかあるがRBF(基底関数)には幾つかのバリエーションがある。そして一般的には方程式から直接決定できない未定の(調整)パラメータがあるためその値を如何にしてシステマティックに決めるかが結構みそになる。またRBFによるフィッティングでは張られる面から外れた「外れ点」を混ぜておく必要がある(これには少し気がつかなかったが。。。)。結構落とし穴かもしれない。(自分だけかもしれないが。。。)。
    さて、一旦うまくいくとかなり自由度が高いフィッティングが可能な事がわかった。またかなりの点数を間引いておいてもそれなりの補間が自動的になされるというのも魅力かもしれない。

    結果の面はたったの1面で張っている(当然の結果だが)。ただ、難点は記憶容量と計算時間が点数が増えるに従って極端に増大することである。

    ※これら計算結果はWCCTLによって得られたものです
2004年09月11日 13時15分42秒

inserted by FC2 system