点群OBJのテクスチャだけが90度回転する現象とは
点群や三次元計測のデータをOBJ形式でアップロードした際、形状そのものは正しいのに、表面へ貼られた写真だけが90度回転して見えることがあります。地面の模様が横向きになったり、壁面に写った文字が縦向きになったり、舗装の白線と三次元形状の向きが合わなくなったりする現象です。
点群 OBJ アップロードでこの問題が起きたとき、最初に確認すべきなのは、モデル全体が回転しているのか、テクスチャだけが回転しているのかという点です。両者は見た目が似ていますが、原因も補正方法も異なります。
モデル全体が90度回転している場合は、三次元座標の軸方向や、書き出し時の上方向の設定が関係している可能性があります。一方、建物や地形の形状は正しい方向を向いており、表面の写真だけが横倒しになっている場合は、画像の向き、UV座標、テクスチャアトラス、関連ファイルの対応関係を調べる必要があります。
テクスチャだけの問題に対してモデル全体を回転させると、見た目は一時的に合っても、座標方向や標高軸が変わるおそれがあります。測量座標を保持したOBJであれば、他の点群や設計データとの重ね合わせにも影響します。そのため、表示を直す目的で三次元形状を動かす前に、画像とUVの問題であるかを切り分けることが重要です。
また、テクスチャの回転状態にも違いがあります。全ての面で同じ方向へ90度回転している場合は、画像全体の向きやUV軸の変換が疑われます。地面は正常なのに壁面だけが回転している場合や、三角形のまとまりごとに向きが異なる場合は、テクスチャアトラス内の画像配置や面ごとのUV対応が関係している可能性があります。
同じOBJを手元の確認環境では正常に表示できるのに、アップロード後だけ90度回転することもあります。この場合、元データが完全に壊れているとは限りません。書き出し側とアップロード先で、画像の向き情報やUV座標の原点を異なる方法で解釈している可能性があります。
問題を正しく補正するには、OBJ、MTL、テクスチャ画像がそれぞれ何を記録しているのかを把握し、どの工程から向きが変わったのかを順番に確認する必要があります。
点群OBJとテクスチャの仕組みを理解する
OBJは、三次元形状を表現するために広く使われているファイル形式です。一般的なOBJには、頂点の位置、面を構成する頂点番号、法線、UV座標、材質の参照などが記録されます。ただし、テクスチャ画像そのものがOBJファイル内へ埋め込まれているとは限りません。
テクスチャ付きのOBJは、通常、OBJファイル、MTLファイル、画像ファイルの組み合わせで構成されます。OBJには形状とUV座標、MTLには材質設定と参照画像の情報、画像ファイルには実際の色や写真が保存されます。これらのどれか一つでも組み合わせがずれると、テクスチャが表示されない、位置がずれる、別の画像が貼られる、90度回転するといった問題が起こります。
OBJ内の頂点座標は、三次元空間における点の位置を示します。面を持つモデルでは、それらの頂点を結んで三角形や多角形を構成します。一方、UV座標は、二次元画像のどの部分を各頂点や面へ割り当てるかを示す情報です。
一般に、画像の横方向をU、縦方向をVとして扱います。多くのデータでは、画像の左端から右端までをUの0から1、下端または上端から反対側までをVの0から1として表現します。ただし、画像の原点を左下と考える処理と、左上と考える処理が混在することがあります。
この原点の違いだけであれば、上下反転として現れることが多いですが、UとVの入れ替えや画像回転が組み合わさると、90度回転になります。特に、縦長の画像を横長の領域へ配置した場合や、画像の幅と高さを入れ替える処理が行われた場合は、方向の違いが発生しやすくなります。
点群と呼ばれるデータでも、OBJへ書き出される段階で三角形メッシュへ変換され、表面へ写真が貼られている場合があります。一方、面を持たず、頂点だけで構成されるOBJもあります。頂点ごとに色を持つデータでは、一般的な画像テクスチャのように全体が90度回転する現象は起こりにくいため、今回の問題が生じている場合は、面とUV座標を持つOBJであるかを確認します。
テクスチャ画像が一枚だけとは限りません。広い現場や複雑な構造物では、複数の画像へ分割されていたり、多数の画像片を一枚へまとめたテクスチャアトラスが使われていたりします。画像構成が複雑になるほど、単純に画像全体を回転するだけでは補正できない可能性が高くなります。
原因1 画像の向き情報と画素配列が一致していない
テクスチャが一律に90度回転する代表的な原因は、画像に記録された向き情報と、実際の画素配列の向きが一致していないことです。
撮影時に縦向きで保存されたように見える画像でも、内部では横向きの画素配列になっており、表示時に別の向き情報を参照して回転させている場合があります。画像閲覧機能がその情報を認識すれば、利用者には正しい縦向きで表示されます。
しかし、OBJを変換する処理やアップロード先が画像の向き情報を参照せず、画素を保存された順序のまま読み込むと、90度回転した状態でテクスチャへ使用されます。手元で画像を開いたときには正常に見えるため、元画像には問題がないと思い込みやすい点が特徴です。
この原因を切り分けるには、画像を表示して確認するだけでは不十分です。一度画像を正しい向きへ回転し、その状態を新しい画素配列として別名保存します。新しい画像へ差し替えた結果、OBJのテクスチャが正常になる場合は、向き情報の解釈が原因だった可能性が高いと考えられます。
画像の縦横寸法も手掛かりになります。たとえば、縦長に見える画像なのに、画像の画素寸法が横長として記録されている場合は、表示時だけ回転されている可能性があります。ただし、画像がトリミングされていたり、テクスチャアトラスへ統合されていたりする場合は、撮影時の向きと画像寸法が一致しないこともあるため、寸法だけで断定することはできません。
画像の形式変換や圧縮処理も原因になります。アップロード前に解像度を下げたり、別の画像形式へ変換したりした際、見た目の方向を画素へ反映しないまま向き情報だけが削除されると、変換後の画像が90度回転します。
特に、一括処理で多数の画像を変換している場合は注意が必要です。一部の画像だけ向き情報に依存していると、同じ処理を通した後に、特定の画像領域だけが回転することがあります。この状態でテクスチャアトラスを生成すると、一部の面だけが90度回転したように見える場合があります。
向き情報が原因かを判断する際は、画像の回転方向も記録します。時計回りに90度回転しているのか、反時計回りに90度回転しているのかを確認しておけば、画像またはUVをどちらへ補正すべきか判断しやすくなります。
原因2 UV座標のU軸とV軸が入れ替わっている
画像自体が正しい向きでも、OBJ内のUV座標が異なる方向を前提としていれば、テクスチャは90度回転して表示されます。
UV座標は、三次元形状と二次元画像を対応させるための情報です。一般にUが画像の横方向、Vが縦方向を示しますが、書き出し処理や読み込み処理の途中でUとVが入れ替わると、画像の横方向がモデル上の縦方向として扱われます。
さらに、座標値の反転が加わると、単純な軸交換ではなく、時計回りまたは反時計回りの90度回転として表示されます。たとえば、元のUを新しいVとして使い、元のVを反転して新しいUとして使うような変換です。
全ての面で同じ方向へ回転している場合は、UV座標全体へ共通した変換が適用されている可能性があります。一方、隣接する面の一部だけが異なる方向を向いている場合は、面単位のUV展開や参照番号に問題がある可能性があります。
UVの問題を画像だけの回転で補正しようとすると、向きは合っても位置がずれる場合があります。一枚の画像をモデル全体へ貼っている単純なデータであれば、画像全体を回転する方法が機能することもあります。しかし、複数の面を一枚の画像へ配置したテクスチャアトラスでは、画像内の各領域とUV座標が一対一で対応しています。
そのため、画像だけを回転すると、各面が参照する画像領域の位置まで変わってしまいます。壁の画像が地面へ貼られたり、別の場所の模様が表示されたりする可能性があります。
UV座標の値が0から1の範囲外へ広がっている場合も注意が必要です。補正後の座標が範囲外になると、読み込み側の処理によっては画像が繰り返されたり、端部が引き伸ばされたりします。90度回転は解消しても、別の画像ずれが起きる可能性があります。
また、画像の縦横比が正方形ではない場合、UVだけを回転すると、画像が引き伸ばされたように見えることがあります。画像の幅と高さを入れ替えて保存する必要があるのか、UV範囲だけを回転すべきなのかは、元の画像構成と書き出し処理に合わせて判断する必要があります。
原因3 テクスチャアトラスの回転配置が正しく引き継がれていない
広い現場や複雑な構造物のOBJでは、多数の画像領域を一枚または複数枚の大きな画像へまとめることがあります。このように複数の画像片を配置したものがテクスチャアトラスです。
テクスチャアトラスを作る処理では、画像領域を効率よく詰めるため、個々の画像片を90度回転して配置することがあります。画像片を回転させる処理自体は異常ではありません。回転後の位置と向きに合わせてUV座標も生成されていれば、モデル上では正しく表示されます。
問題になるのは、画像片の回転情報とUV座標の対応がずれた場合です。画像片だけが回転して配置され、UVが回転前の状態を参照していると、その領域に対応する面だけが90度回転して見えます。
この原因では、モデル全体が同じ方向へ回転するとは限りません。地面は正常なのに壁面だけが横向きになる、構造物の一部だけ画像が回転する、三角形のまとまりごとに向きが変わるといった現象が起こります。
テクスチャアトラスが関係する場合、画像全体を90度回転しても解決しないことが多くあります。正しく表示されている領域まで同時に回転してしまうためです。部分的に画像を切り出して修正する方法も考えられますが、UV座標との対応を保ちながら編集しなければならず、作業が複雑になります。
形状だけを再計算し、過去に作成したテクスチャアトラスを流用した場合も、対応がずれることがあります。メッシュの面構成やUV展開が変わった後に古い画像を使うと、以前とは異なる場所へ画像が貼られます。
反対に、テクスチャアトラスだけを再生成し、古いOBJを使用した場合も同様です。新しい画像内で画像片の位置や回転方向が変わっているのに、OBJは以前のUV座標を参照するため、回転や位置ずれが発生します。
アトラス画像を単体で開くと、画像片がさまざまな方向で配置されていることがありますが、それだけでは異常とは判断できません。画像内の向きを人が見てそろえる必要はなく、OBJ内のUV座標と正しく対応していることが重要です。
原因4 OBJ・MTL・画像の組み合わせが一致していない
点群 OBJ アップロードでは、OBJ、MTL、画像を一つの成果として管理する必要があります。これらが別々の書き出し結果から集められていると、テクスチャが90度回転したり、位置がずれたりする可能性があります。
たとえば、UV座標を修正してOBJだけを書き出し直し、以前の画像をそのまま使用した場合、新しいUVと古い画像配置が一致しないことがあります。反対に、画像やアトラスだけを再生成し、古いOBJを使った場合も対応が崩れます。
MTLはOBJで使う材質と画像を結び付ける役割を持ちます。MTL内の画像参照が実際の画像名と一致していなければ、テクスチャが表示されないことがあります。また、似た名前の画像が複数存在すると、意図しない画像を選択したままアップロードしてしまう可能性があります。
ファイル名の大文字と小文字、拡張子、空白、記号、保存場所の違いも確認が必要です。手元の環境では参照できていても、アップロード先でファイル名の扱いが異なると、画像を正しく読み込めないことがあります。
圧縮ファイルへまとめる際にフォルダ階層を変更したことが原因になる場合もあります。MTLが特定の場所にある画像を参照しているのに、アップロード用のフォルダでは画像を別の階層へ移動すると、参照が切れます。
読み込み処理が同名の画像を自動探索する場合、エラーにならず、別の画像が割り当てられることもあります。その画像が似たテクスチャであれば、単なる位置ずれや回転のように見える可能性があります。
表示側に残った古いデータにも注意が必要です。修正後の画像を同じファイル名でアップロードしても、以前の画像が表示され続けると、補正が反映されていないように見えます。修正の検証では、別名の画像や新しいデータ名を使い、現在表示されているファイルを識別できる状態にすることが有効です。
補正方法1 画像の向きを画素データに反映して再保存する
テクスチャ全体が同じ方向へ90度回転しており、画像の向き情報が原因と考えられる場合は、画像の見た目の向きを実際の画素データへ反映して再保存します。
重要なのは、画像表示画面で回転して見せるだけではなく、回転後の状態を新しい画素配列として保存することです。表示上だけ向きを変更した画像では、OBJの変換処理が元の画素方向を読み込む可能性があります。
最初に、元のOBJ、MTL、画像を複製し、修正前の状態を保存します。元画像へ直接上書きすると、補正方向を誤った場合に元へ戻せなくなります。また、どの組み合わせが正しかったか分からなくなるため、検証用フォルダを分けることが安全です。
次に、画像を正しい方向へ90度回転し、別名で書き出します。画像を90度回転すると、通常は幅と高さが入れ替わります。横長の画像を回転した場合は縦長になるため、再保存時に元の寸法へ強制変形されていないかを確認します。
元の縦横寸法へ無理に合わせると、回転は直っても、画像が横または縦へ引き伸ばされます。構造物の形や路面の模様が変形するため、画素寸法と縦横比を維持することが重要です。
新しい画像名を使用する場合は、MTL内の参照先も変更します。画像だけ別名にしてMTLを更新しなければ、OBJは引き続き古い画像を参照します。同じ画像名で差し替える場合は、以前の表示データが残っていないことを確認します。
補正後は、方向を判断しやすい場所で確認します。壁の文字、路面表示、構造物の縦方向、排水溝、縁石などを使うと、回転が解消したか判断しやすくなります。
画像の向きを直した結果、テクスチャの方向は合っても位置がずれた場合は、UV座標との対応が変わった可能性があります。特にテクスチャアトラスでは、画像全体の回転によって画像片の位置も移動するため、この補正方法が適さないことがあります。
全体が一枚の画像で覆われている比較的単純なモデルや、元画像の向き情報だけが正しく処理されていないケースでは、画像の再保存が有効です。一方、一部の面だけが回転している場合は、アトラスまたはUV側の確認へ進みます。
補正方法2 UV座標を90度回転して向きを合わせる
画像ファイル自体が正しい向きであり、モデル上のテクスチャだけが90度回転している場合は、UV座標を回転して補正します。
正規化されたUV座標を使う場合、時計回りまたは反時計回りの回転では、UとVの入れ替えと反転を組み合わせます。たとえば、変換後のUへ元のVを割り当て、変換後のVへ1から元のUを引いた値を割り当てる方法があります。反対方向では、変換後のUへ1から元のVを引いた値を使い、変換後のVへ元のUを割り当てます。
ただし、どちらが画面上の時計回りに相当するかは、画像座標の原点や読み込み側のV方向によって変わります。数式だけで方向を決めず、小さな複製データで両方向を試し、見た目を確認することが必要です。
UVを編集するときは、OBJ内の面が参照しているUV番号を維持します。OBJでは、三次元頂点とUV座標が別々の番号で管理されることがあります。面行に書かれた参照関係を崩すと、画像が回転するだけでなく、三角形ごとに異なる場所を参照する状態になります。
UV座標全体を一括回転する方法は、全ての面が同じ方向へ回転している場合に向いています。一部の面だけが回転している場合に全体へ適用すると、正常な面まで回転します。
テクスチャアトラスを使用している場合は、画像全体の中心を基準にUVを回転すると、個々の画像片が別の位置へ移ることがあります。各画像片の範囲を基準に回転する必要があるため、単純な一括変換では対応できない場合があります。
補正後は、UV座標が想定する範囲に収まっているかを確認します。変換の計算によってわずかに0未満や1を超える値が生じると、画像端部に別の模様が現れたり、繰り返し表示されたりする可能性があります。
画像が横長または縦長の場合は、UV回転後の縦横比にも注意します。向きは正しくても、画像が引き伸ばされたように見える場合は、画像寸法とUV領域の対応が合っていません。その場合は、画像の幅と高さも入れ替える必要があるか、元の書き出し条件を確認します。
UVの補正では三次元頂点を変更しないため、形状座標を維持しやすい利点があります。測量座標を保持したままテクスチャだけを直したい場合に適していますが、適用範囲を誤ると別のずれを生むため、代表箇所で確認してから全体へ反映します。
補正方法3 テクスチャアトラスを関連ファイルごと再生成する
一部の面だけが90度回転している場合や、回転と位置ずれが同時に発生している場合は、テクスチャアトラスを再生成する方法が有効です。
このときは画像だけを作り直すのではなく、OBJ、MTL、テクスチャ画像を同じ処理でまとめて生成します。関連ファイルの世代をそろえることが重要です。
過去に作成したOBJへ新しい画像を組み合わせたり、新しいOBJへ古いMTLを組み合わせたりすると、UV座標と画像配置が一致しない可能性があります。再生成時は、以前の関連ファイルを流用せず、一つの書き出し結果として管理します。
テクスチャアトラスの作成条件に、画像片の90度回転を許可する項目がある場合は、原因確認のために回転を行わない条件で出力します。画像片を回転しないと、アトラス内の空白が増えたり、画像枚数が増えたりすることがありますが、回転情報の引き継ぎが原因かを判断しやすくなります。
回転を禁止したアトラスで正常に表示される場合は、画像片を回転配置した際のUV変換または関連情報に問題があった可能性があります。ただし、利用する処理環境によって設定や書き出し方法が異なるため、元データを残したうえで比較します。
再生成時には、画像解像度や画像寸法も確認します。大きなテクスチャ画像を自動縮小する工程があると、通常は向きまで変わりませんが、途中の再配置や画像変換によって対応が崩れる場合があります。
最初は現場全体ではなく、小さな範囲を切り出して再生成すると効率的です。壁面、地面、文字や直線が写っている部分など、向きを判別しやすい場所を選びます。小規模データで正しく表示できた条件を、その後に全体データへ適用します。
再生成後のフォルダには、実際に使用するOBJ、MTL、画像だけを保存します。古い画像、途中生成された画像、試験用の別形式画像を同じ場所へ残すと、アップロード時に誤ったファイルを選ぶ原因になります。
複数の画像がある場合は、MTL内の参照と全て一致しているかを確認します。画像が一枚でも不足すると、その部分だけ色が欠けたり、別の画像が割り当てられたりします。
補正方法4 小規模データでアップロード条件を切り分ける
手元では正常に見えるのに、アップロード後だけテクスチャが90度回転する場合は、アップロード処理を条件ごとに切り分けます。
大規模なOBJを毎回アップロードすると、処理時間が長くなり、どの変更が有効だったか判断しにくくなります。まずは、問題が確認しやすい範囲だけを残した小規模な検証データを作成します。
検証用データでは、面数を減らし、テクスチャ画像を一枚または少数に絞ります。文字、路面線、壁と地面の境界など、90度回転を見分けやすい部分を残します。
最初に、元のOBJ、MTL、画像を変更せずにアップロードし、現象が再現するか確認します。小規模データでも同じ回転が起きる場合は、容量や面数ではなく、画像方向やUV解釈が中心的な原因と考えられます。
次に、画像の向きだけを画素へ反映したデータを試します。この変更だけで直れば、画像方向の解釈が原因だった可能性があります。
画像を元へ戻し、UV座標だけを回転したデータも試します。この変更で直る場合は、UV軸の対応が原因と考えられます。
その後、OBJ、MTL、画像を全て再生成したデータを比較します。再生成した組み合わせだけが正しく表示される場合は、ファイル世代の不一致やテクスチャアトラスの対応が原因だった可能性があります。
検証では複数の変更を同時に行わないことが重要です。画像の回転、UVの修正、画像形式の変更、ファイル名の変更を一度に実施すると、どの変更によって直ったのか判断できません。
アップロードごとにファイル名やデータ名を変えることも有効です。同じ名前で上書きすると、以前の画像や変換結果が残っている場合があります。検証番号や修正内容が分かる名称を付ければ、現在表示しているデータを識別しやすくなります。
小規模データでは正常なのに、大規模データでだけ回転する場合は、アップロード後の自動軽量化、画像分割、画像再構成などが関係している可能性があります。画像寸法や面数を段階的に増やし、どの条件から問題が起きるかを調べます。
ただし、ファイル容量や画像寸法の具体的な上限は、利用する環境や設定によって異なります。一般的な数値を決めつけず、実際のアップロード先で比較することが必要です。
補正後に確認したい形状・座標・表示品質
テクスチャの向きが正しくなっても、補正作業が完了したとは限りません。回転補正によって、位置ずれ、変形、画像の継ぎ目、座標方向の変化が起きていないかを確認します。
最初に、方向を判断しやすい対象を確認します。路面表示、文字、縁石、排水溝、建物の窓、柱、フェンスなどが、三次元形状と同じ向きになっているかを見ます。
自然地形だけでは、90度回転が解消したか判断しにくい場合があります。人工物の直線や文字を確認すると、方向の違いを見つけやすくなります。
次に、画像上の特徴と形状の境界が一致しているかを確認します。テクスチャの向きが合っていても、UVの回転中心や座標範囲を誤ると、画像全体が横や縦へずれます。
壁の端、路面の線、構造物の角、法肩や法尻などを拡大し、画像と形状の位置関係を確認します。三角形の境界で画像が急に変わっていないかも重要です。
面の参照番号やUV番号を誤った場合、隣接する三角形の画像が連続しません。遠くから見ると目立たなくても、拡大すると細い筋や色の段差として確認できます。
画像を回転して再保存した場合は、解像度や圧縮状態も確認します。変換を繰り返すと、細部がぼやけたり、色の境界が不鮮明になったりすることがあります。可能な限り、元画像から一度の変換で補正済み画像を作成します。
テクスチャアトラスを再生成した場合は、画像片の境界から色がにじんでいないかも確認します。隣接する画像領域の色が面の端へ入り込むと、構造物の輪郭に不自然な線が現れます。
最も重要なのは、テクスチャ補正のために三次元座標を変更していないかという点です。モデル全体を回転させて見た目を合わせた場合、東西南北の方向、標高軸、原点、他データとの位置関係が変わる可能性があります。
測量座標を持つOBJでは、既知点や基準位置を使い、補正前後で座標が同じであることを確認します。形状の向き、標高方向、縮尺も比較します。
テクスチャは現場状況の確認に役立ちますが、写真の見た目だけで点群やメッシュの精度を判断することはできません。補正後も、点密度、欠測、不要点、面の生成状態、座標精度を別々に確認します。
テクスチャの回転を再発させないデータ管理
テクスチャの90度回転を再発させないためには、書き出し方法だけでなく、関連ファイルの管理手順を統一することが重要です。
元画像は、取得時の原本として保存します。アップロード用に向きや解像度を変更する場合は、原本へ上書きせず、変換後の画像を別の場所へ保存します。
画像の変換記録も残します。向きを画素へ反映したのか、解像度を変更したのか、画像形式を変更したのかが分かれば、問題発生時にどの工程を確認すべきか判断しやすくなります。
OBJ、MTL、画像は、同じ書き出し処理で作られた一組として管理します。OBJだけを更新した場合は、UVや面構成に変更がないかを確認し、必要であればMTLと画像も同時に再生成します。
提出用またはアップロード用のフォルダは、作業フォルダとは分けます。使用するOBJ、MTL、画像だけをコピーし、古いファイルや途中生成物を混在させないようにします。
画像ファイル名を変更した場合は、MTL内の参照先も必ず更新します。フォルダ階層を変更した場合も、画像の参照が有効であるかを確認します。
初めて使うアップロード環境では、現場全体の大規模データを投入する前に、小さな検証データを使います。画像方向、UV、材質参照、変換後の表示を確認してから、本番データへ進みます。
修正したデータには、変更内容が分かる名称を付けます。単に最新版や修正版とするだけでは、複数回修正したときに順序や変更点が分からなくなります。画像方向を確定した版、UVを補正した版、アトラスを再生成した版など、作業記録上で区別します。
アップロード後は、同じ視点から補正前後を比較します。上面、正面、斜面、文字のある場所などを確認し、テクスチャの方向だけでなく、位置、縮尺、座標も維持されているかを確認します。
LRTK Phoneで取得した点群OBJを扱う際の考え方
LRTK Phoneで取得した点群や位置情報付きの現場データをOBJとして扱う場合も、三次元座標とテクスチャ画像を分けて確認することが重要です。
テクスチャが90度回転したとき、直ちに測位や取得データ全体の問題と判断する必要はありません。形状や既知位置が正しく、画像だけが回転している場合は、取得後の画像変換、UV生成、OBJ書き出し、アップロード処理を中心に確認します。
一方、形状と画像が一緒に回転している場合は、座標軸や書き出し方向も確認する必要があります。テクスチャだけの不具合とモデル全体の方向問題を混同すると、正しい座標を不要に変更してしまう可能性があります。
現場データは再取得の負担が大きくなることがあるため、取得直後のデータ、OBJ書き出し直後のデータ、アップロード用に変換したデータを分けて保存します。どの段階まで正しく表示されていたかが分かれば、全工程をやり直さずに原因となった処理だけを修正できます。
LRTK Phoneで取得した位置情報を活用する場合は、テクスチャの補正前後で既知点や構造物の位置を比較します。画像方向を直すために三次元モデルを回転させず、必要に応じて画像またはUVだけを補正することが重要です。
点群 OBJ アップロードを安定させるには、取得、書き出し、画像変換、関連ファイルの整理、アップロード後の確認までを一つの流れとして管理します。現場で取得した情報を継続的に活用するためにも、元データを残し、各工程の処理内容を記録しておくことが有効です。
まとめ
点群OBJのテクスチャが90度回転する問題は、三次元形状そのものではなく、画像の向き情報、UV座標、テクスチャアトラス、OBJ・MTL・画像の組み合わせによって起きる場合があります。
最初に、モデル全体が回転しているのか、テクスチャだけが回転しているのかを確認します。形状が正しく、画像だけが横向きになっている場合は、三次元座標を動かさず、画像とUVを中心に原因を切り分けます。
全体のテクスチャが同じ方向へ回転している場合は、画像の向き情報が画素データへ反映されているかを確認します。画像自体が正しい場合は、U軸とV軸の入れ替わりや反転を確認します。
一部の面だけが回転している場合は、テクスチャアトラス内の画像片とUVの対応がずれている可能性があります。回転と位置ずれが同時に起きている場合は、OBJ、MTL、画像を同じ処理で再生成する方法が適しています。
補正方法は、画像の向きを画素へ反映して再保存する方法、UV座標を90度回転する方法、テクスチャアトラスを関連ファイルごと再生成する方法、小規模データでアップロード条件を切り分ける方法の4つです。
どの方法を使う場合でも、元データを上書きせず、複製した小規模データで確認してから本番へ適用します。複数の変更を同時に行わず、一つずつ条件を変えることで原因を特定しやすくなります。
補正後は、画像の方向だけでなく、形状との位置合わせ、三角形の継ぎ目、画像解像度、座標方向、標高、縮尺を確認します。見た目を直すためにモデル全体を回転させると、測量座標や他データとの重ね合わせへ影響する可能性があります。
OBJ、MTL、画像を同じ世代で管理し、アップロード前に小規模な表示確認を行うことで、テクスチャ回転の再発を抑えられます。現場で点群を取得し、位置情報を保ったままOBJの確認や共有へつなげたい場合は、LRTK Phoneを活用したデータ取得と運用方法も確認してみてください。