今回は Instant Meshes の基本的な使い方を解説するチュートリアルです。Instant Meshes は、3Dモデルのリトポロジーやポリゴン数の削減を行える、無料かつオープンソースのソフトウェアです。



動画の書き起こし

皆さんこんにちは!今回は Instant Meshes の基本的な使い方を解説するチュートリアルです。Instant Meshes は、3Dモデルのリトポロジーやポリゴン数の削減を行える、無料かつオープンソースのソフトウェアです。最も興味深い機能の一つは、特定のトポロジーフローを手動で定義し、low-poly トポロジーの生成を誘導できることです。

実用的な例として、フォトグラメトリーで得られた3Dモデルを使います。このモデルは、以前 Turntable フォトグラメトリーの基本シリーズで解説したのと同じワークフローで、Meshroom を使って再構築しました。その結果、モデルは頂点数が多く、トポロジーもあまり良くありません。

Instant Meshes は、ソースコードとしてダウンロードして自分でコンパイルするか、あるいは事前にコンパイルされた実行ファイルをダウンロードできます。リンクは動画の説明欄にあります。このソフトはスタンドアロンで動作し、OBJ または PLY 形式のモデルを読み込むことができます。

フォトグラメトリーで得られたモデルを少し整理しました。これを OBJ 形式でエクスポートし、Instant Meshes にインポートできるようにします。

Instant Meshes を起動したら、Open Mesh ボタンをクリックして、OBJ 形式の3Dモデルを読み込みます。3Dビューはマウスの左ボタンで回転できます。マウスホイールでズーム、右ボタンでパン操作ができます。

Advanced パネルには、Wireframe モードでの表示、頂点や面の数値 ID の表示など、いくつかの表示モードがあります。画面上部には Remesh As というボタンがあり、出力するジオメトリの種類を指定できます。デフォルトは Quads(四角形ポリゴンのみ)になっていて、そのまま使います。

Target Vertex Count パラメータは少し誤解を招く名前で、最終的なメッシュの頂点数を表しているわけではありません。実際には、生成されるグリッドの密度を決定するためのガイド用パラメータです。これはアルゴリズムにとって理想的な目安であり、厳密な上限でも保証された結果でもありません。Instant Meshes は、元のメッシュの解像度が不足している可能性があるため、超えない方がよい値を提案してくれます。私たちが主に求めているのは、良い簡略化を伴うリトポロジーなので、Instant Meshes が提案する値をあえて下げた方がよい場合もあります。そのため、正確なポリゴン数が必要な場合にはこのプログラムは最適ではありませんが、Blender など他のソフトで後からジオメトリを簡略化することは可能です。

次に、Orientation Field セクションにある Solve ボタンの最初のものをクリックすると、Instant Meshes が初期のトポロジーフローを計算します。Solve をクリックすると、オブジェクト上に初期フローが表示されます。脚などの細長い部分ではうまくいく場合もありますが、別のトポロジーを得るためには調整が必要な場合もあります。

初期トポロジーを確認・修正するために、Orientation Field セクションには、特定のエリアのフローを調整できる 3 種類のツールがあります。同じセクション内には Singularities というフィールドもあり、ここでは Instant Meshes が方向フローが急激に変化する重要ポイントの数を表示してくれます。これらのシンギュラリティは、通常 3 本、5 本、またはそれ以上のエッジが接続された頂点として現れます。

最初のツールである Comb を使ってみましょう。これは、左クリックでジオメトリをドラッグすることで、カスタムのフローを定義できるツールです。ビューを回転させるには、いったん Comb ツールを無効にしてから再度有効にする必要があります。各線の横にある X アイコンをクリックすることで、線を削除できます。各ストロークが Singularities の数にどのように影響するかに注目してください。結果が良くなることもあれば、悪くなることもあります。

Orientation Field の Singularities を視覚化するには、先ほど少し見た Advanced タブで表示を有効にできます。ここでは Singularities のアイコンサイズも調整できます。もうひとつの表示方法として、磁石のアイコンがついた Attractor ボタンを有効にする方法もあります。いずれにしても、Comb ツールを使ってフローラインを再定義してみることができます。フローは自動的に再計算されるため、再び Solve をクリックしても見た目に変化はないはずです。一部の Singularities は、顔の上や、例えばこの像にある小さなオオカミの耳の近くなど、ほぼ除去不可能なものもあります。私も、ある問題を修正するために新しいトポロジーフローを定義してみましたが、結果として新たに 2 つの Singularities を増やしてしまいました。

いずれにせよ、Orientation Field は 2 ステップのうちの最初のステップです。2 つ目は Position Field で、ここでは四角形トポロジーにおいて頂点の分布に不連続が見られる領域を処理します。Position Field セクションの Solve ボタンをクリックして進めましょう。ご覧のとおり、Orientation Field で定義したフローに基づいて新しいトポロジーのラインが生成されました。ただし、ここでも問題のある領域がいくつか明確に確認できます。これらも Singularities と呼ばれます。

Position の Singularities は、線が途中で急に終わって他のエッジフローに合流するような場所に現れることが多く、比較的見つけやすいです。Advanced タブの対応するチェックボックスをオンにすることで、Position Field の Singularities を表示できます。

こちらにも Comb ツールがあり、フローを微調整して Singularities を減らそうとすることができます。ただし、いくつかの Singularities は取り除くことができません。最善の場合でも、近くにまとめたり、目立たない領域やアニメーションの必要がないメッシュの平坦な部分など、問題の少ない場所へ移動させることができます。

編集が完了したら、あとは結果をエクスポートするだけです。Export Mesh をクリックすると、Pure Quad Mesh(四角形ポリゴンのみで構成されたジオメトリを生成)などの出力ジオメトリに関するいくつかのオプションを設定でき、スムージングの反復回数も任意で適用できます。次に Extract Mesh をクリックすると、Instant Meshes が最終的なジオメトリを生成し、3D ビューでプレビューできるようになります。最後に Save をクリックして、OBJ ファイルの名前と保存場所を指定します。このとき、拡張子 .obj を手動で追加するのを忘れないでください。そうしないと、Instant Meshes はファイルを保存してくれません!

それでは、OBJ ファイルを Blender にインポートして、元のハイポリモデルと比較してみましょう。すぐに気づくのは、頂点数が Instant Meshes の Target Vertex Count に設定した値よりもかなり多いということです。先ほども説明したように、このパラメータはあくまで密度の目安であり、厳密な目標値ではありません。ただし、トポロジーは元のモデルよりもはるかにきれいになっており、モデルの簡略化や修正がしやすくなっています。見た目がかなり角ばっているのは、すべてのエッジが Sharp Edges としてマークされているのと、Cavity オプションを有効にしているためです。見た目を滑らかにするには、Edit Mode の Edges メニューで Sharp Edges を削除し、Cavity オプションをオフにします。ハイポリモデルとの重なり具合も良好で、これにより Base Color や Normal Map を簡単にベイクすることができますが、それはまた別の機会に紹介します。

チュートリアルを検索

フレーズ、または複数のキーワードをカンマで区切って入力してください。

Francesco Milaneseによる3Dモデル、チュートリアル、コンピューターグラフィックス関連の資料を掲載しています。3Dモデルの使用ライセンスは、各モデルのページに掲載されているリンク先の外部ストアで購入できます。ご利用には、適用されるライセンス条件が適用されます。 Francesco Milanese — イタリアVAT番号:06321250877。お問い合わせ:info@francescomilanese.com


プライバシー及びクッキーの使用に関する拡張情報の通知