COLMAPのpoisson_mesherを使用し、密点群(fused.ply)から三角形メッシュを生成する。
COLMAPのpoisson_mesherが持つ depth パラメータは、画像の深度(デプス)とは全く別の概念であり、Poisson再構成で使用するOctree(八分木)の深さを表す。
Octreeとは空間を8分割ずつ再帰的に细分するデータ構造で、その深さ(depth)が大きいほど細かい格子で空間を分割する:
| depth | 格子サイズの目安 | メッシュの細かさ | VRAM使用量 |
|---|---|---|---|
| 8 | 256×256×256 | 粗め | 低 |
| 9 | 512×512×512 | 標準 | 中 |
| 10 | 1024×1024×1024 | 詳細 | 高(約3.4GB) |
| 11 | 2048×2048×2048 | 非常に詳細 | 非常に高(限界超過) |
depthが1増えるごとに格子数は8倍になる(2depth の3乗)。そのためdepth 10→11で約8倍のメモリが必要になる。
COLMAP内蔵のPoissonメッシャーが depth >= 10 でアクセス違反によりクラッシュ。depthが大きいほど高精細なメッシュになるが、その分メモリ使用量が増加する。
4GB VRAMの制約を超えるメモリ割り当てが発生。depth 10でもGPUメモリが逼迫し、GTX 1650 Ti(4GB)では安定動作が難しい。
COLMAPのpoisson_mesherが失敗した場合、Open3DのPoisson再構成で代替。
depthパラメータを削減(9以下)することでCOLMAP版でも動作可能な場合がある。ただしdepth 9ではdepth 10に比べてメッシュの細部表現が粗くなるトレードオフがある。
一部対策 — Open3D代替で実用上は解決。ただしOpen3D版はCOLMAP版と出力が微妙に異なる場合がある。