復元結果を COLMAP の外に出す
COLMAP のモデルは、COLMAP を知るソフトしか読めない 3 つのバイナリファイルです。一方 GLB は Blender、Windows 3D ビューアー、macOS のクイックルック、Unity、Unreal、three.js、Babylon、そしてウェブ上のあらゆる glTF ページで開けます。GLB を書き出すというのは、COLMAP を持っていない人に復元結果を見せる方法であり、その復元から作ったモデルの隣に並べる方法でもあります。
ファイルに入るもの
疎な点群は、位置と色を持つ glTF の POINTS プリミティブとして。COLMAP の RGB は sRGB、glTF の COLOR_0 はリニアなので、書き出し時に変換します。
カメラ視錐台は LINES として。光学中心から四隅への光線、それを結ぶ長方形、そして上辺の切り欠きが各ショットのロールを示します。隅の方向は実際の内部パラメータから作るので、広角なら広い視錐台になります。
本物の glTF カメラ — 画像ごとに透視カメラノードを 1 つ。yfov は COLMAP の内部パラメータから、アスペクト比も正しく、それぞれ元の写真の名前が付きます。Blender は実際に覗けるカメラとして読み込み、アウトライナーは Object.001 の羅列ではなくファイル名の一覧になります。
変換をはっきり書く
COLMAP は RDF(x 右、y 下、z 前)。glTF は RUB(x 右、y 上、z 後ろ)。書き出しではすべての位置と方向を変換します。これを落としているせいで、自作の COLMAP 書き出しの多くが Blender で上下逆さまに開きます。
もう半分:COLMAP は姿勢をワールドからカメラへと保存するので、カメラのワールド上の位置は t ではなく −Rᵀt です。
知っておくとよい注意点
ポイントプリミティブは正当な glTF ですが、どこでも描かれるわけではありません。Windows 3D ビューアーなどは何も表示しません。Blender、three.js、Babylon なら大丈夫です。どこでも見える必要があるなら、ソリッドマーカーを有効にしてください。
すべてブラウザー内で処理され、復元データが送信されることはありません。
Tiny Online Tools







