撮影データが横倒しで届く理由
広く使われている座標軸の規約はほんの数種類しかないのに、キャプチャーツールもレンダラーもそれぞれ別のものを選びました。COLMAP と OpenCV は RDF(x が右、y が下、z が前)。glTF・three.js・SPZ は RUB(x が右、y が上、z が後ろ)。Unity は左手系の RUF、Blender は Z アップの RFU、Unreal は Z アップかつ左手系の FRU です。
変換せずにファイルを行き来させれば、横倒し・上下逆・鏡像のいずれかになります。
多くのコンバーターが取りこぼすもの
スプラットは点ではありません。正しく変換するには 3 つを回す必要があります。
- 位置 — これは誰でもやります
- 各スプラットの回転クォータニオン — たいていのツールがやります
- 球面調和関数 — ほとんど誰もやりません
3 番目を飛ばすと、形状は正しく見えるのに視点依存のシェーディングだけが古い軸に貼り付いたままになります。歩きながら面を滑っていた反射が、逆向きに滑るようになるのです。このツールは球面調和のバンドを形状と一緒に回します。回転行列は、色を評価するのと同じ基底から直接解いています。
鏡像
可能な変換のうち 3 つは利き手を反転させます。行列式が −1 になるものです。鏡像は回転ではなく、スプラットのクォータニオンとして書けません。位置とスケールは正確に出ますが、各スプラットの向きは回転成分だけを引き継ぎます。そうなったときは、裏返って描かれるシーンを黙って渡すのではなく、はっきり知らせます。
そのほか
- 一様スケール — 位置とスプラットの大きさを同時に掛けるので形は保たれます。メートルからセンチメートルへ、あるいは任意スケールで学習したデータに。
- 原点に中心を合わせる — 多くのエンジンはアセットを保存された原点に置いて読み込みますが、撮影データの原点は再構成が置いた場所のままです。
変換前後は左右に並べて表示されるので、選択を間違えればすぐ分かります。すべてブラウザー内で処理されます。
Tiny Online Tools







