LRTKレフィクシア株式会社

点群OBJのテクスチャ画像が反転するときの5つの修正手順

点群OBJのテクスチャ画像が反転する主な仕組み

点群OBJをアップロードしたとき、形状や位置は正しいにもかかわらず、テクスチャ画像だけが上下反転したり、文字が鏡文字になったりすることがあります。現場の看板が逆向きに表示される、道路標示の上下が入れ替わる、構造物の左側にある模様が右側へ移るといった症状が代表的です。

この問題を解決するには、最初に「画像が反転している」と一括りにしないことが重要です。見た目が似ていても、画像ファイル自体の向きが違う場合、UV座標の縦方向が逆の場合、形状全体が鏡像になっている場合では、必要な修正が異なります。

OBJ形式では、形状を構成する頂点座標と、画像上の参照位置を示すテクスチャ座標を別々に記録できます。一般に、画像の横方向をU、縦方向をVとして扱い、面を構成する各頂点とUV座標を対応させることで、三次元形状の表面に画像を表示します。

ここで問題になりやすいのが、画像座標と三次元表示で使われる座標の考え方の違いです。画像処理では画像の左上を基準にして、下方向へ座標が増える扱いが用いられることがあります。一方、三次元表示では画像の左下を基準にして、上方向へV座標が増える扱いが用いられる場合があります。

書き出し側と読み込み側でV方向の基準が異なり、その違いを変換工程で吸収できないと、テクスチャが上下反転します。反対に、書き出し時とアップロード時の両方で反転補正が行われると、二重に反転して元とは異なる結果になることもあります。

左右反転の場合は、U座標が逆になっている可能性があります。ただし、左右が反対に見える原因はUV座標だけではありません。形状に負の倍率を設定して鏡像複製した場合や、座標軸を変換する過程でモデル全体が鏡像になった場合にも、テクスチャ内の文字や矢印が左右反転して見えます。

画像ファイルに保存された向き情報も原因になり得ます。画像閲覧時には正しい向きで見えていても、閲覧環境が向き情報を読み取って表示だけを補正している可能性があります。点群OBJの読み込み処理がその情報を反映しない場合、保存されている画素の並びがそのまま使われ、三次元表示では異なる向きになることがあります。

なお、「点群OBJ」という名称で管理されているデータでも、実際の内部構造は同じとは限りません。頂点だけを含む純粋な点データもあれば、点群から生成された三角形の面とUV座標を含むメッシュデータもあります。一般的なUVテクスチャを表示するには、通常は面情報とテクスチャ座標が必要です。頂点行だけで構成されたOBJでは、面に画像を貼る通常のテクスチャ表示が利用できない場合があります。

したがって、テクスチャ反転の修正を始める前に、対象のOBJに面、UV座標、マテリアル参照が含まれているかを確認する必要があります。点群の頂点色と、面に割り当てるテクスチャ画像は異なる仕組みであるため、両者を混同しないことも大切です。

修正前に上下反転と左右反転を切り分ける

テクスチャを修正する前に、反転の方向と発生範囲を記録します。ここを曖昧にしたまま画像やUV座標を変更すると、修正前より原因を追いにくくなることがあります。

最初に、画像内で方向を判断できる対象を探します。看板の文字、設備番号、進行方向を示す矢印、道路標示、左右非対称の模様などが適しています。単色の壁や左右対称の模様では、上下や左右が反転していても正確に判断できません。

上下反転では、画像の左側と右側の位置関係は維持されますが、上端と下端が入れ替わります。上向きの矢印が下向きになる、上部にある文字が下部へ移る、地面と上部構造物の位置が逆になるといった状態です。この症状では、V座標の解釈差や画像の上下方向を疑います。

左右反転では、上端と下端の関係は維持されますが、左側と右側が入れ替わります。文字が鏡文字になる、右向きの矢印が左向きになる、現地で右側にある設備が左側へ移るといった状態です。この場合はU座標だけでなく、形状全体の鏡像変換も確認します。

上下と左右の両方が入れ替わっている場合は、画像が180度回転しているか、UとVの両方が反転している可能性があります。右上にある要素が左下へ移り、上向きの矢印が下向きになる場合は、この状態に該当します。

画像が90度回転している場合は、上下反転や左右反転とは別に扱います。縦方向と横方向が入れ替わるため、V座標だけを反転しても正しくなりません。画像そのものを回転して画素方向を確定するか、UV座標全体を画像中心の周囲で回転させる必要があります。

方向を判断できる模様がない場合は、検証用の画像を一時的に使用すると切り分けやすくなります。画像の四隅に異なる文字や記号を配置し、中央に上方向を示す矢印を入れておけば、アップロード後にどの変換が発生したかを確認できます。

次に、反転がモデル全体に発生しているか、一部だけに発生しているかを確認します。すべての面が同じ方向に上下反転している場合は、画像全体またはV座標全体の扱いが原因である可能性が高くなります。一部の部材だけが左右反転している場合は、鏡像複製、局所的なUV反転、異なるマテリアルの割り当てなどが考えられます。

元の画像ファイルも単独で確認します。ただし、普段使用している画像閲覧環境で正常に見えるだけでは、画像データ自体の向きが正しいとは限りません。閲覧時に向き情報が自動適用されている可能性があるため、別の方法で開いた場合にも同じ向きになるかを確認します。

さらに、アップロード前のOBJをローカルの三次元確認環境で開きます。ローカル表示でも反転しているなら、OBJ、UV座標、MTL、画像、書き出し工程のどこかに原因があると考えられます。ローカルでは正常で、アップロード後にだけ反転するなら、アップロード先の読み込み処理や座標変換が関係している可能性があります。

修正作業では元ファイルを直接上書きしないようにします。OBJ、MTL、画像を一つの組として複製し、検証用の作業フォルダを作ります。どの版でUVを変更し、どの版で画像を変更したかを区別できるようにしておくと、二重反転を防ぎやすくなります。

修正手順1:UV座標の向きを確認して補正する

点群OBJのテクスチャが全面的に上下反転している場合は、最初にV座標を確認します。画像ファイルをすぐに反転するのではなく、書き出し元と読み込み先でUV座標の基準が一致しているかを調べることが重要です。

OBJでは、テクスチャ座標が頂点座標とは別の行として保存されます。テクスチャ座標には一般にUとVの値が記録され、面情報から形状頂点と組み合わせて参照されます。形状頂点の番号とテクスチャ座標の番号は、必ずしも同じとは限りません。

代表的な面を一つ選び、その面の上側と下側に対応するUV座標を確認します。実際の画像上端に対応する頂点が、UV上でも上端を参照しているかを調べます。画像上端を参照するはずの頂点が画像下端の座標に割り当てられていれば、V方向が逆になっています。

UV値が0から1の範囲で記録されている場合、上下反転は一般に新しいV値を「1から元のV値を引いた値」に置き換える考え方で行えます。元のV値が0.2なら0.8に、0.8なら0.2に置き換えることで、画像上の参照位置が縦方向に反転します。

ただし、すべてのOBJでUV値が必ず0から1の範囲に収まるとは限りません。画像を繰り返し表示する目的で範囲外の値が使われていることや、特定の画像領域を別の基準で管理していることもあります。その場合に単純な変換を行うと、意図した表示にならない可能性があります。

実際に補正するときは、対象データのUV範囲と画像の割り当て方を確認したうえで作業します。自動変換を使用する場合も、処理前後の最小値と最大値が想定どおりになっているかを確認します。

左右反転ではU座標を調べます。U値が0から1の範囲であれば、V方向と同様に「1から元のU値を引く」方法で左右を反転できます。ただし、モデル全体の形状まで左右が入れ替わっている場合は、UVだけを修正すべきではありません。形状の鏡像変換を解消する必要があります。

一部の面だけが反転しているときは、すべてのUV座標を一括で変更しないようにします。正常な面まで反転するためです。反転している面が参照するUV領域だけを選び、その領域を上下または左右に反転します。

このとき注意したいのが、UV座標の共有です。複数の面が同じUV座標を参照している場合、一つの座標を変更すると、別の面の表示にも影響します。面ごとに異なる方向が必要であれば、UV座標を複製し、それぞれの面が別の座標を参照する状態にしてから調整します。

UVを修正したあとにOBJを再出力すると、書き出し設定によってはUVが再生成されることがあります。手作業で補正した内容が失われないように、既存UVを保持する設定になっているかを確認します。

また、書き出し元ですでにV方向の補正を行っている場合、アップロード前の変換工程でもう一度反転すると二重反転になります。UVを直す工程は一か所に限定し、どの工程を基準にするのかを決めておくことが重要です。

修正後は、ローカルで方向を確認してからアップロードします。ローカル表示で正しくなったことだけで完了とせず、実際のアップロード先でも同じ方向になるかを確認します。アップロード時に追加の変換が行われる環境では、ローカル表示と結果が異なることがあるためです。

修正手順2:テクスチャ画像の向き情報を正規化する

UV座標が正しく、形状にも鏡像がないのに画像が回転または反転する場合は、画像ファイルの向き情報を確認します。

画像には、画素自体を並べ替えず、表示時にどの向きへ回転させるかを示す情報が含まれていることがあります。画像閲覧環境がこの情報を読み取ると、画面上では正常な向きに見えます。しかし、点群OBJのテクスチャ読み込み処理が向き情報を反映しない場合、保存されている画素配列の方向で表示されます。

この状態では、画像を単独で確認すると正しく見えるのに、OBJへ割り当てると90度回転したり、上下が逆になったりします。担当者が画像を確認しただけでは問題に気づきにくいため、向き情報に依存しない状態へ正規化する必要があります。

正規化では、現在見えている正しい方向に合わせて、画素そのものを回転または反転させます。その状態を新しい画像として保存し、向き情報がなくても同じ方向で表示される状態にします。

保存後は、複数の方法で画像を開き、どの閲覧環境でも同じ向きになるかを確認します。可能であれば、保存前後の画像寸法も比較します。90度回転した場合は幅と高さが入れ替わるため、画像とUVの対応に影響することがあります。

単純な上下反転や左右反転では、通常は画像の幅と高さは変わりません。一方、90度または270度の回転では縦横が入れ替わります。UV座標が元の縦横比を前提としている場合、画像だけを回転すると模様の位置が合わなくなる可能性があります。

画像の正規化では、透過情報にも注意します。画像を再保存する過程で透過部分が不透明になったり、背景色が追加されたりすると、反転とは別の表示問題が発生します。透明部分を使用している画像では、保存後も透過状態が維持されているかを確認します。

画像の画素数や圧縮状態も確認します。向きだけを直すつもりでも、保存設定によって画像が縮小されると、文字や細い線がぼやけます。元画像の解像度を不用意に変更せず、必要な品質を保ったまま保存します。

修正画像は、元画像へ直接上書きせず、検証中は別名で保存する方が安全です。同じ名前のまま差し替えると、表示環境やブラウザのキャッシュによって以前の画像が残り、修正が反映されていないように見える場合があります。

別名で保存した場合は、MTL内の画像参照も新しいファイル名へ変更します。画像ファイルだけを改名しても、MTLが以前の画像を参照していれば、新しい画像は使用されません。

画像側を反転して直す方法は分かりやすい一方で、同じ画像を複数のOBJが共有している場合には注意が必要です。一つの用途に合わせて画像を変更すると、別のOBJでは反転して表示される可能性があります。元画像は基準方向で保管し、アップロード用の画像を必要に応じて別に作成すると管理しやすくなります。

UV側で補正するのか、画像側で補正するのかは、作業ごとに変えない方が安全です。複数の担当者が別々の方法で補正すると、どのデータが反転済みなのか分からなくなります。修正箇所と修正方向を記録し、補正を一つの工程へ集約します。

修正手順3:鏡像変換と負の倍率を解消する

文字が左右反転している場合や、現地の左右関係そのものが逆になっている場合は、形状全体の鏡像変換を確認します。画像またはUVだけを修正すると、文字は読めるようになっても、モデルの座標や設備配置が誤ったまま残る可能性があります。

鏡像は、形状を左右対称に複製するために、いずれかの軸へ負の倍率を設定した場合に発生しやすくなります。画面上では目的の位置に配置できていても、負の倍率を保持したままOBJへ出力すると、書き出し処理によって面の頂点順、法線、UVの向きが意図しない状態になることがあります。

座標系の変換でも鏡像が生じる可能性があります。三次元データを異なる座標軸の環境へ移すとき、軸の入れ替えや符号反転を行うことがあります。変換の組み合わせによっては、単なる回転ではなく、左右関係が反対になる変換になります。

鏡像を見分けるには、テクスチャ内の文字だけでなく、形状と座標の関係を確認します。現地で右側にある設備がモデルでも右側にあるか、三つ以上の基準点の並び順が維持されているか、方位を示す対象が逆転していないかを調べます。

負の倍率が残っている場合は、見た目の形状を維持したまま変換を形状データへ確定し、倍率を正の値へ戻してから再出力します。変換を確定したあとは、面の向きと法線を再計算します。

鏡像変換では面の頂点順が反転することがあります。面の頂点順が逆になると、法線も反対方向を向く場合があります。アップロード先が片面表示を採用していると、正面から見えるはずの面が消えたり、裏側からだけ見えたりすることがあります。

テクスチャ反転を修正したあとに面が欠けるようになった場合は、法線と面の表裏を確認します。画像の向きだけでなく、形状を構成する面が正しい向きに統一されている必要があります。

左右対称の部材を鏡像複製している場合、複製後に形状変換を確定しても、UVの向きが鏡像のまま残ることがあります。その場合は、形状の左右関係を直したうえで、複製側のUVを個別に調整します。

座標変換の工程では、平行移動、回転、軸の入れ替え、符号反転を区別して記録します。「座標を合わせた」という記録だけでは、鏡像が発生した工程を後から特定できません。どの軸をどの方向へ変換したかを残しておくことが重要です。

点群OBJを計測や現地照合に使用する場合、鏡像の見落としはテクスチャ表示だけの問題では済みません。構造物の左右位置や方位を誤って判断する原因になるため、文字が読める状態になっただけで修正完了としないようにします。

修正手順4:OBJとMTLと画像の参照関係を整える

UVや画像を修正したのに表示が変わらない場合は、編集した画像が実際には参照されていない可能性があります。OBJ、MTL、テクスチャ画像の関係を順番に確認します。

一般的な構成では、OBJからMTLを参照し、MTLから画像を参照します。OBJ内では、使用するマテリアル名が面ごとに指定されます。MTLでは、そのマテリアル名に対応する設定と画像ファイル名が記録されます。

最初に、OBJ内で指定されているMTLファイル名が、実際に用意したMTLと一致しているかを確認します。次に、OBJ内で使われているマテリアル名と、MTL内で定義されている名称を照合します。最後に、MTLから参照される画像ファイル名が、修正後の画像名と一致しているかを調べます。

ファイル名では、大文字と小文字の違いに注意します。作業環境によっては同じファイルとして扱われても、アップロード先では別の名前として区別される場合があります。拡張子の大文字と小文字も含め、参照記述と実際のファイル名を統一します。

空白、全角文字、特殊記号を含む名前も、変換や展開の過程で問題になる可能性があります。ファイル名を変更できる場合は、半角英数字と単純な区切り記号を中心にした分かりやすい名称へ統一すると、参照切れを減らしやすくなります。

MTLから画像を参照する際は、作業端末内の絶対パスを残さないようにします。特定の端末にしか存在しないフォルダを参照していると、別の環境へアップロードしたときに画像を読み込めません。

OBJ、MTL、画像を同じフォルダに配置し、画像を相対的なファイル名で参照する構成は、移動やアップロードに対応しやすい方法です。サブフォルダを使用する場合は、圧縮やアップロード後にも同じ階層が維持されるかを確認します。

複数のテクスチャ画像を使用しているOBJでは、すべての画像を確認します。一部だけ反転して見える場合、反転済みの画像と未修正の画像が混在している可能性があります。

似た名前の画像が多数あると、どの画像が使われているかを判断しにくくなります。検証時は、使用するOBJ、MTL、画像だけを新しいフォルダへコピーし、その組み合わせだけで表示できるかを確認します。

古い画像や旧版のMTLを同じ場所へ残していると、担当者が誤ったファイルをアップロードする原因になります。また、同名ファイルのキャッシュによって、以前の画像が表示されることもあります。検証版では一式の名前を変更し、OBJ内とMTL内の参照も合わせて更新すると、結果を比較しやすくなります。

圧縮ファイルとしてアップロードする場合は、圧縮前だけでなく展開後の階層も想定します。圧縮ファイルを開いた直下にOBJがある構成と、さらに一つのフォルダを挟んでOBJがある構成では、読み込み処理によって結果が異なる場合があります。

画像の向きを修正しても結果が変わらないときは、MTL内の参照先を確認し、修正前の画像名が残っていないかを調べます。画像ファイルを差し替えるだけでなく、OBJから画像までの参照経路全体を確認することが重要です。

修正手順5:アップロード先の表示条件に合わせて再出力する

ローカルでは正しく見えるのに、点群OBJアップロード後だけ反転する場合は、アップロード時の変換処理を疑います。アップロード先では、座標軸の変換、UV座標の調整、画像の再処理、メッシュの軽量化などが行われることがあります。

このような場合に大容量の本番データだけで検証を続けると、アップロードと確認に時間がかかり、変更内容も比較しにくくなります。方向確認用の小さな検証データを作成すると、原因を効率的に切り分けられます。

検証データは、一枚または数枚の面と、上下左右が明確な画像で構成します。画像の四隅に異なる記号を置き、中央に矢印や文字を入れておけば、アップロード後にどの方向へ変換されたかを判断できます。

最初はUVと画像のどちらも変更していない基準版をアップロードします。次にV座標だけを反転した版を試し、その後で画像だけを上下反転した版を試します。UVと画像を同時に変更すると、二重反転によって見た目が元へ戻り、どちらの処理が必要だったのか分からなくなります。

アップロード先でV方向が自動的に反転されることが確認できたら、入力データのどの工程で補正するかを決めます。書き出し時にUVを補正する方法、アップロード専用画像を用意する方法、中間変換でUVを変換する方法などが考えられます。

どの方法を採用する場合も、補正は一つの工程へ限定します。画像、UV、中間変換のすべてで補正すると、データを再生成したときに方向が変わりやすくなります。

再出力時は、不要な形式変換を減らします。点群の取得後に、表面生成、UV展開、座標変換、軽量化、別形式への変換、OBJへの再変換を繰り返すと、どの段階で反転したのかを追跡しにくくなります。

可能であれば、基準となる元データからアップロード用OBJまでの工程を固定します。毎回異なる順序で処理すると、同じ設定を使ったつもりでも、UVや面の向きが変わることがあります。

アップロード後に古い画像が表示される場合もあります。同じ画像名を使い続けると、表示側に以前のデータが残り、修正が反映されていないように見えることがあります。

検証時は、OBJ、MTL、画像のすべてを新しい名前に変更し、内部参照も新しい名前へ更新します。新旧のデータを明確に分けることで、キャッシュと修正失敗を区別しやすくなります。

本番データを再出力したら、ローカル表示とアップロード後表示を比較します。テクスチャの向きだけでなく、モデルの位置、縮尺、方位、面の欠け、画像の鮮明さも確認します。

アップロード後にテクスチャが正しくなっていても、座標軸の変換でモデルが鏡像になっていれば、実務に使用できる状態とはいえません。画像の方向と形状の座標関係を一体として確認してください。

一部の面だけテクスチャが反転する場合の対処

モデル全体ではなく、一部の部材や面だけが反転する場合は、画像全体を反転してはいけません。画像を変更すると、正常だった面まで逆向きになるためです。

一部だけ反転する代表的な原因は、鏡像複製された部材です。左右対称の形状を作るために片側を複製して反転すると、複製側のUVも鏡像になることがあります。

左右対称の形状であっても、画像に文字や番号が含まれていれば、左右で同じUVをそのまま使用できない場合があります。複製側のUV領域だけを左右反転するか、左右の部材に別々のUVを割り当てます。

別の原因として、複数のマテリアルが混在していることがあります。見た目は一つの連続したテクスチャでも、内部では複数の画像やマテリアルに分かれている場合があります。修正済みの画像を参照する面と、旧画像を参照する面が混在すると、一部だけが反転しているように見えます。

OBJ内でマテリアルが切り替わる位置を確認し、反転している面がどのマテリアルを使用しているかを調べます。そのマテリアルが参照する画像名をMTLで確認し、修正対象を特定します。

UV座標の共有も原因になります。正常な面と反転した面が同じUV座標を共有している場合、一方だけを直すことはできません。UV座標を複製し、それぞれの面が独立した座標を参照するように変更します。

一部の面で形状頂点とテクスチャ座標の対応順が違っている場合もあります。OBJの面情報では、形状頂点とUV座標が組み合わせて指定されます。この組み合わせの順序が入れ替わると、同じ画像でも面上で反転したり、斜めに引き伸ばされたりします。

面の頂点順にも注意します。隣接する面の一部だけ頂点順が逆になっていると、法線方向が反対になることがあります。両面表示では一見問題がないように見えても、アップロード後に片面表示となり、裏面から透けて見えることで反転したように感じる場合があります。

重複面も調べます。同じ位置に二枚の面が存在し、それぞれ異なる向きやテクスチャを持っていると、視点によって表示が切り替わったり、模様がちらついたりします。視点を動かしたときに表示が不安定になる場合は、重複面や極端に近い面を疑います。

点群から自動生成されたメッシュでは、UV領域が細かく分割されることがあります。自動展開の過程で一部のUV領域が回転または反転されても、岩肌や土のように方向性が分かりにくい画像では問題に気づけません。

看板、路面線、タイル、配管の帯、文字を含む箇所など、方向性のある面を重点的に確認します。一部反転では画像全体ではなく、面、UV領域、マテリアルの単位で原因を探すことが重要です。

反転修正で起こりやすい失敗と注意点

テクスチャ反転の修正で最も起こりやすい失敗は、画像とUVを同時に反転することです。画像を上下反転し、さらにV座標も反転すると、見た目が元の方向へ戻ることがあります。

一時的に正しく見えても、どちらの補正が本当に必要だったのか分からなくなります。そのデータを別の表示環境へ移すと、再び反転する可能性もあります。修正は一回につき一要素だけ変更し、結果を記録します。

次に多いのが、上下反転と180度回転の取り違えです。上下反転では左右関係が維持されますが、180度回転では左右も入れ替わります。文字や矢印の位置を確認し、どの方向が変わっているかを判断します。

左右反転を画像だけで直すことにも注意が必要です。モデル全体が鏡像になっている場合、画像を左右反転すれば文字だけは読めるようになります。しかし、現地の左右位置や座標関係は誤ったままです。

ファイル名の変更漏れもよくあります。修正画像を新しい名前で保存しても、MTL内の参照が旧画像のままなら、アップロード結果は変わりません。画像名を変更したときは、内部参照まで含めて一式を更新します。

同名ファイルの上書きでは、古い画像が表示されることがあります。結果が変わらないときに追加の反転を行うと、キャッシュが更新された時点で二重反転した画像が表示される可能性があります。検証版には新しい名前を付ける方が安全です。

元データを直接編集することも避けます。反転補正を複数回行ったあとでは、どの状態が基準だったのか分からなくなります。未編集の元画像、元OBJ、元MTLを保管し、作業用の複製へ変更を加えます。

再出力時にUVが自動生成される設定も確認します。手作業で補正したUVを保持するつもりでも、書き出し時に再展開が実行されると、修正が失われます。既存UVを使用する設定か、再生成する設定かを確認してください。

画像の反転後に圧縮や縮小が行われ、画質が変化することもあります。方向が正しくなっても、文字や設備番号が読めなくなれば、実務上の確認に支障が出ます。画像の向きと同時に、解像度や鮮明さも比較します。

反転修正後は、表面だけでなく裏面からも確認します。両面表示によって、裏側から見た文字を反転と誤認している場合があります。観察している面が表側か裏側かを確認し、法線方向も合わせて調べます。

点群OBJアップロード前に確認したい項目

点群OBJをアップロードする前には、OBJ、MTL、テクスチャ画像が一式そろっていることを確認します。複数の画像を使用している場合は、MTLから参照される画像がすべて含まれている必要があります。

OBJ内のMTL参照、OBJ内のマテリアル名、MTL内のマテリアル定義、MTL内の画像参照を順番に照合します。名前の大文字と小文字、拡張子、空白、記号まで確認します。

画像を単独で開き、文字、矢印、上下関係が正しいかを確認します。向き情報に依存していないことも確認し、必要であれば画素方向を確定した画像を使用します。

ローカルの三次元確認環境では、正面だけでなく、背面、上面、下面、左右の側面からモデルを確認します。正面では正常でも、裏面を透かして見ているために文字が逆に見えることがあります。

モデルの方向を判断できる基準も確認します。文字だけではなく、既知の設備位置、基準点、方位、構造物の左右関係が現地と一致しているかを見ます。

面の表裏と法線方向も確認します。テクスチャの方向を直したあとに一部の面が消えた場合、頂点順または法線方向が反転している可能性があります。

ファイル構成はできるだけ単純にします。アップロードに必要なOBJ、MTL、画像だけを専用フォルダへまとめ、不要な旧版を含めないようにします。

圧縮してアップロードする場合は、圧縮ファイル内の階層と、MTLから画像への相対的な参照関係を確認します。展開後にも同じ位置関係が保たれる構成にします。

大容量データでは、本番アップロード前に小さな検証版を作ると安全です。代表的な面、UV、画像、マテリアルを含む軽量版で方向と参照を確認し、問題がなければ本番データへ同じ条件を適用します。

ただし、軽量化処理によってUVやマテリアルが再構成される場合があります。検証版で成功しても、本番データの書き出し条件が異なれば結果が変わるため、最終的には本番データ自体も確認します。

アップロード後は、処理完了の表示だけで判断せず、実際にモデルを開いて確認します。複数の視点と拡大率で、画像の向き、継ぎ目、ぼやけ、面の欠け、位置ずれがないかを見ます。

修正履歴も保存します。UVのV方向を反転したのか、画像の画素を反転したのか、鏡像変換を解除したのかを記録しておけば、次回の再出力で同じ補正を重ねることを防げます。

テクスチャ反転を再発させない運用方法

テクスチャ反転を再発させないためには、基準となる画像方向とUV方向を決めます。作業担当者ごとに異なる方法で補正すると、同じデータでも結果が安定しません。

元画像は、向き情報に依存せず、画素自体が正しい方向に並んだ状態で保管します。アップロード先に合わせた反転が必要な場合でも、元画像を直接変更せず、アップロード用の派生画像を作る方が管理しやすくなります。

UV座標も基準を統一します。元データでは一定のUV方向を維持し、アップロード先で特別な変換が必要な場合は、書き出しまたは変換工程の一か所で処理します。

フォルダは、元データ、作業中データ、アップロード用データに分けます。元データを上書きせず、作業内容ごとに版を分けます。

ファイル名だけで反転状態を判断する運用には注意が必要です。「反転済み」という名前だけでは、上下反転なのか左右反転なのか、どの表示環境を基準にしたのかが分かりません。

ファイル名には対象モデルや版を示し、具体的な補正内容は作業記録に残します。UVを変更した場合は対象範囲と変換内容を、画像を変更した場合は回転方向や反転方向を記録します。

変換工程を固定することも重要です。点群取得後にどの手順でメッシュを生成し、どの段階でUVを作り、どの段階で座標を変換し、どの条件でOBJを出力するかを決めます。

処理順序が変わると、同じ設定値でも結果が変わる場合があります。とくに鏡像変換を含む座標処理は、UV展開や法線計算の前後関係によって影響が異なります。

上下左右が分かる基準用OBJと画像を用意しておく方法も有効です。アップロード先の設定や変換工程を変更したときに基準データを通せば、本番データを処理する前に方向の変化を確認できます。

点群からメッシュやテクスチャを再生成すると、以前の手修正が引き継がれないことがあります。再生成後は以前の完成版と比較し、UV、画像方向、マテリアル参照を改めて確認します。

複数人で作業する場合は、画像を修正する担当、UVを編集する担当、アップロードする担当の間で、補正工程を共有します。各担当者が念のために反転すると、二重反転の原因になります。

完成データには、OBJ、MTL、画像だけでなく、使用した書き出し条件と確認結果も残します。どの環境で正常に表示されたかが分かれば、将来の再出力や別案件への展開がしやすくなります。

まとめ

点群OBJのテクスチャ画像が反転するときは、画像だけをすぐに反転するのではなく、反転の方向と原因を切り分けることが重要です。

全面が上下反転している場合はV方向のUV座標や画像の向き情報を確認します。文字が鏡文字になり、モデルの左右関係も逆になっている場合は、U座標だけでなく形状全体の鏡像変換を調べます。

修正は、UV座標の確認、画像方向の正規化、負の倍率や鏡像変換の解消、OBJとMTLと画像の参照確認、アップロード先に合わせた再出力という順序で進めると整理しやすくなります。

一度に複数の変更を行うと、どの修正が有効だったのか判断できません。UVだけを変更した版、画像だけを変更した版などを分け、一つずつ表示結果を確認してください。

一部の面だけが反転している場合は、画像全体を変更せず、該当面のUV、マテリアル、頂点順、鏡像複製の状態を確認します。重複面や裏面表示が反転のように見える場合もあるため、視点を変えて確認することも大切です。

点群 OBJ アップロードを安定させるには、元画像、UV、座標変換、アップロード用補正の基準を統一する必要があります。元データを保管し、修正内容を記録し、基準用の小さなデータで事前検証することで、反転問題の再発を抑えられます。

現場で取得した点群データを継続的に活用する場合は、取得から出力、アップロード、表示確認までを一つの運用として整えることが重要です。点群取得後のデータ整理や三次元確認を効率化する方法を検討する際は、LRTK Phoneを活用した運用もあわせて確認してみてください。

現場を3Dで残して、あとから測る。
実際の画面と動画で使い方を確認できます。

LRTK Phoneの使い方・実例を見る
資料請求導入相談
現場をスマホで3DスキャンLRTK Phone実例を見る