RealityCaptureでテクスチャを作成する際に、以下の現象が発生したので参考までにメモしておきます。
問題
RealityCaptureでメッシュ化まで終了した。Lassoツールで不要部分を削除したあと、テクスチャを作成しようとしたところ、処理が途中で止まってしてしまう。
具体的には、
- プログレスバーは処理中になっているが、40%付近で止まり、数日放置しても変化なし。
- CPU・GPUの使用率が、最初は80%~100%なのに、途中で1-2%になる。
- 最初は70GB以上メモリを使用しているのに、途中で大幅低下する。
- エラー表示は何もない。
原因①

最初は不要なキャッシュのせいかと思い、キャッシュを削除したり、設定を初期化したり、いろいろと取り組んでいたのですが、なかなか改善せず。ようやく判明した(一つ目の)原因は、Lassoツールで不要部分を削除(FilterSelection)した際、モデルが重複して作成されていたことでした(上図)。
通常のソフトであれば、ある部分を編集すると元のデータが変更されると思いがちですが、RealityCaptureは厳格な履歴管理を行っているため、変更は元のモデルに反映されず、そのたびに新しいモデルが作成される仕様になっています。このため、Lassoで不要部分を削除するたびにコンポーネントの中にモデルが重複して作成された状態になっていました。
そこで、最新のモデル(上図の「モデル24」)以外を削除して、1コンポーネント・1モデルの状態にしました。これでOK!……のはずだったのですが……。
原因②
余計なモデルを削除しても、まだテクスチャの作成の途中で止まる状態が続いていました。そこで上図をよく見ると、モデル内のtrisが「1.4 B tris」になっています。これはtrianglesの略で、要するにポリゴン数です。1.4ビリオンということは、14億ポリゴンあることを意味しています。明らかに過大です。
どうしてこうなったのかを探ってみると、私が「再構築設定」の「パーツあたりの最大の頂点数」を変更していたせいでした。フォトグラメトリの対象が大規模なので、全体で5000万ポリゴンくらいのモデルにしたくて、ここを3000万にしていたのですが、これが「パーツあたりの最大頂点数」なのを見落としていました。このモデルでは131パーツに分かれているので、5000万ポリゴンにしたいなら、1パーツあたりは30万頂点くらいにしないといけないわけです(頂点数とポリゴン数は1:2~1:4くらいになります)。
少し多めに40万頂点にして再度メッシュ化したところ、5000万ポリゴン程度のモデルができました。

解決
1コンポーネント内に1モデル、ポリゴン数は5000万ポリゴン程度に削減したところ、止まらずにテクスチャの作成ができました。(専門の方から見れば初歩的な間違いですが、このためだけに1週間浪費してました……)
ご参考までに。
