Laplacian SmoothingキットをGithubで公開しました。Laplacian Smoothingは、データ平滑化のアルゴリズムの手法で、主に形状データの局所的なノイズを抑え、滑らかな形状にする特徴があります。頂点の位置を、その点に隣接する点の平均位置に向かって少しずつ移動させることで、表面を平滑化します。
Laplacian Smoothingのプラグインを作るにあたり、オープンソースのジオメトリ処理ライブラリのlibiglを使用いたしました。libiglは、シンプルかつ高機能なオープンソースのC++ジオメトリ処理ライブラリで、ヘッダーをインクルードしてプロジェクトをビルドすることができます。今回使用したLaplacian以外にもModoの機能に組み込んだら面白そうな興味深い機能がたくさんあります。今回はlibiglを使ったプラグインを利用して作るプロジェクトの練習のつもりで作りました。Pythonから利用可能なライブラリも用意されているようです。多くの計算処理をEigenを使って行っていますのでEigenの使い方さえマスターできれば簡単に利用できそうです。
Modoの標準のスムースツールは、汎用的でかつマルチタスキングを使って高速化されていますので、多くの場面では標準のスムースツールを使用することができます。今回のLaplacian Smoothingを使うと局所的なディテールが徐々に平滑化したい場合などで有効な方法だと思います。下記はLaplacian SmoothingのStrengthを0.0, 1.0, 2.0に変えてスムージングを行った例です。足先のディテールが徐々になくなっていきます。