【フォトグラメトリ】モデルの修正方法 Reality Capture編+3DF Zephyr編

日々フォトグラメってる龍 lileaです。
今回はフォトグラメトリで生成したモデルの修正方法について紹介します。

モデルの修正には大きく2つのアプローチがあります。

  1. 外部ソフトで修正したモデルを読込みテクスチャを再生成する
  2. フォトグラメトリソフト内で行う

この記事では主に1の方法について説明します。
前半はReality Captureを用いた方法、
後半は3DF Zephyrを用いた方法です。

2の方法については、
Reality Capture内で修正する方法はReality Capture編の最後で簡単に紹介します。
3DF Zephyr内で修正する方法はnoriaさんのこちらの記事が参考になります。

Reality Capture編

1. モデルを書き出す

こちらが生成したモデルです。
薄い部材のため穴が空いてしまいました。
How to update modified model in Reality Capture and 3DF Zephry

Reconstruction > Export > Model から書き出します。
How to update modified model in Reality Capture and 3DF Zephry

書き出し先は半角名のパスである必要があります。
全角のパスを指定すると [Exporting Textured and Colored Mesh – FBX SDK : Export failed.] エラーとなってしまいます。

書き出すと.rcInfoというファイルも生成されます。
これは読み込み時に必要なファイルなので書き出したファイルと同じ階層に置いておきます。

2. DCCツールで修正

お好みのソフトで破綻したメッシュを修正します。
以下はCinema4Dの穴埋めツールを使う場合です。
How to update modified model in Reality Capture and 3DF Zephry

※これと同じ原理でReality Capture内での穴埋めも可能です(後述)

3. 修正モデルを読み込む

書き出し時と同じプロジェクトへ修正したモデルを読み込みます。
この時.rcinfoファイルも読み込むモデルと同じ階層に置いておきます。

Reconstruction > Export > Model
How to update modified model in Reality Capture and 3DF Zephry

4. UVを生成する

DCCツールでUVを生成している場合はこのステップは不要です。
Reality Capture内で生成する場合は以下の手順で行います。

Reconstruction > Tools > Unwrap
How to update modified model in Reality Capture and 3DF Zephry

1Dsウィンドウに設定画面が表示されます。
ここでテクスチャ生成時のサイズや枚数が指定できます。

Large triangle texture resolution:数値を大きくする程サイズの大きなポリゴンに対してもUVの領域を割くようになります。
Maximum texture count:生成するテクスチャの枚数です。

Unwrapボタンを押すとUVマップが生成されます。
Scene > Scene Render > Sweet でマップの状態を確認できます。
How to update modified model in Reality Capture and 3DF Zephry

5. テクスチャを再生成する

Textureボタンを押すと生成が開始されます。
How to update modified model in Reality Capture and 3DF Zephry

Textureボタン右下のSettingsを押すとここにもUnwrapの設定画面が出てきますが、これは読み込んだモデルにUVマップが無かった場合にこの設定を使ってテクスチャ生成をするというものです。
今回は前手順でUVマップを既に生成しているのでここで設定されているものは無視されます。

6. モデルを書き出し完成

テクスチャが生成されたらモデルを書き出して完成です。
How to update modified model in Reality Capture and 3DF Zephry

※ Reality Capture単体で穴埋めする方法

外部ソフトを使わずReality Capture単体での穴埋めも可能です。

ただし穴の形状が平らな場合に限ります。
複雑な形に穴が空いている場合は想定したとおりに塞がるとは限りません。
How to update modified model in Reality Capture and 3DF Zephry

選択ツールを選択します。
Reconstruction > Selection > Losso
How to update modified model in Reality Capture and 3DF Zephry

穴の縁を選択していきます。
How to update modified model in Reality Capture and 3DF Zephry

Shiftを押しながらだと選択範囲の追加、
Ctrlを押しながらだと選択範囲の削除になります。

以下のように選択しました。
How to update modified model in Reality Capture and 3DF Zephry

ここで Tools > Filter Selectiion を実行するとメッシュが削除されます。
How to update modified model in Reality Capture and 3DF Zephry

How to update modified model in Reality Capture and 3DF Zephry

次に Tools > Clean Model を実行。
How to update modified model in Reality Capture and 3DF Zephry

すると穴がふさがります。
How to update modified model in Reality Capture and 3DF Zephry

後は通常通りテクスチャを生成して完成です。
How to update modified model in Reality Capture and 3DF Zephry

とは言えあまりキレイなメッシュにはならないので、正確な修正を行いたい場合はDCCツールを使った方が良さそうです。

3DF Zephyr編

1. モデルを書き出す

生成したモデルがこちら。
How to update modified model in Reality Capture and 3DF Zephry

Reality Capture同様穴が空いてしまってます。
(ソフトが違っても穴が空く位置はおおよそ同じ)

コンテキストメニューから書き出します。
How to update modified model in Reality Capture and 3DF Zephry

書き出し時は [ローカル表示基準システム] のチェックはオフにしておきます。
How to update modified model in Reality Capture and 3DF Zephry

これがオンになっていると―
How to update modified model in Reality Capture and 3DF Zephry

この様に修正したモデルを読み込んだ際に座標がズレてしまいます。
(白が読み込んだモデル)

2. DCCツールで修正

お好みのソフトでモデルの破綻部を修正します。
How to update modified model in Reality Capture and 3DF Zephry

この時ポリゴンは三角ポリゴン化しておきます。
3DF Zephyrは多角ポリゴンがあると正しくテクスチャ生成できません。

NG (多角ポリゴン)
How to update modified model in Reality Capture and 3DF Zephry

OK ( 三角ポリゴン)
How to update modified model in Reality Capture and 3DF Zephry

3. UVを調整する

そのままだとこの様な状況なので―
How to update modified model in Reality Capture and 3DF Zephry

以下のように整理しておきます。
How to update modified model in Reality Capture and 3DF Zephry

4. 修正モデルを読み込みテクスチャ生成する

書き出した時と同じプロジェクトへ修正したモデルを読み込みます。
How to update modified model in Reality Capture and 3DF Zephry

テクスチャ生成ダイアログが出るので、テクスチャサイズ等を設定して実行します。
How to update modified model in Reality Capture and 3DF Zephry

6. モデルを書き出し完成

テクスチャが生成されたらモデルを書き出して完成です。
How to update modified model in Reality Capture and 3DF Zephry

最適化

当記事は「修正方法」として説明させていただきましたが、このワークフローは修正に限らずフルスクラッチモデルに対しテクスチャを生成する場合にも使えます。
フォトグラメトリで生成されるメッシュはハイポリゴンになりがちなので、使用するコンテンツによってはこのメッシュは使わないという割り切りも良いのではないでしょうか。

生成されたメッシュをガイドにモデルを作成し、そのモデルに対してテクスチャを生成する事でフォトリアルかつ軽量なモデルを作ることができます。

※今回説明で使用したモデルは旧都城市民会館に遺されていた長谷川逸子氏デザインのイスです。
モデル修正を終えたモデルはこちらでARにて確認できます。

Written by 藤原龍 (龍 lilea)