VSAは、プロキシーにシードとなる三角形を与えていきながらリラクゼーション処理を行い、クラスタリングを行いながら入力ポリゴンを複数のセグメントに分割していきます。このアルゴリズムは実はModoのUV ProjectionツールのAtlas2というモードで利用していました。AtlasがポリゴンをXYZの主軸方向に投影した後、連続するUVポリゴンをグループ化するのに対し、Atlas2ではVSAによってセグメント分割されたポリゴンをセグメント単位に投影しています。
Mesh Approximationキットは、CGALのTriangulated Surface Mesh Approximationパッケージを使ってソースポリゴンのセグメント分割とクラスターから構築した近似メッシュを作成します。
下記はSegementationモードでセグメント分けしたメッシュ形状(中)とApproximationモードで再構築した近似メッシュ形状(右)です。
Segementationモードは分割してグループ分けしたポリゴンをポリゴンタグで出力したり、異なるセグメントの境界のエッジを選択セットに出力するようにしています。視覚的にセグメント分けされたポリゴングループを表示できるように頂点カラーをRGB Vertex Mapに書き込んでいます。これはSet Colorといオプションを有効にすると出力され、Modoの3DビューポートプロパティにあるShow Weightmapsを有効にすることで表示することができます。
セグメント化されたポリゴングループはUV展開ツールを使ってUV空間に投影することができます。Edge Selection Setで出力された選択セットのエッジはそのままUV展開のシームエッジとして使用することができますし、マテリアルやパートのポリゴンタグはUV展開ツールのSegment by MaterialやSegment By Partを有効にすることでポリゴンタグの境界をシームとして利用することができます。
Approximationモードは、VSAによって構築した近似メッシュを出力するモードです。New Meshを有効にすると新しいメッシュに近似メッシュを書き込みます。この近似メッシュはCGALのCGAL::Surface_mesh_approximation::approximate_triangle_mesh()からの出力を元に作られているのですが、残念ながら元のメッシュを構成するポリゴンとの関連付けはトレースできないため、マテリアルやUVマップなどの属性情報は継承されていません。また、近似メッシュのポリゴンは全て三角形になります。
最近はModoの開発中に試してみたかったアイディアやアルゴリズムをオープンソースライブラリを使ってキットとして実装しています。ユーザーの方々からの要望に基づく機能ではないので、使い道は限定されてしまうかもしれませんね。(^^;;
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。