LRTKレフィクシア株式会社

点群OBJのUV範囲外座標で表示が乱れるときの4つの補正法

UV範囲外座標で点群OBJの表示が乱れる理由

点群 OBJ アップロードを行った後に、表面の色が不自然に引き延ばされる、同じ画像が繰り返される、一部が黒く見える、境界部分に線が現れるといった表示異常が発生することがあります。形状が読み込まれている一方で画像だけが乱れている場合は、UV座標、材質情報、テクスチャ画像、アップロード先の描画設定の組み合わせに原因がある可能性があります。

UV座標は、三次元形状の表面と二次元画像上の位置を対応させる情報です。一般に横方向をU、縦方向をVとして扱い、画像の表示領域を0から1付近の値で表現します。ただし、OBJのvt行に記録される値は、ファイル構文上、必ず0以上1以下へ限定されるものではありません。負の値や1を超える値が記録され、画像を繰り返す目的で利用される場合があります。

重要なのは、範囲外UVの表示結果がOBJだけで一意に決まるわけではないことです。テクスチャを繰り返すか、端へ固定するか、範囲外を描画しないかといった挙動には、材質設定、変換処理、ビューアーの実装、描画時のサンプラー設定が関係します。MTLにはテクスチャの範囲外処理に関する-clamp指定がありますが、対応状況や実際の見え方は読み込み環境によって異なることがあります。現代の描画環境でも、繰り返しと端への固定は別の処理として扱われます。Khronos Registry+1

そのため、作成環境では正常だったデータが、アップロード後に異なる表示になることがあります。作成側では範囲外UVを周期的に繰り返していても、アップロード先では端へ固定されたり、MTLのオプションが無視されたりする可能性があります。範囲外座標を検出しただけで破損と断定せず、どの表示規則を前提として作られたデータなのかを確認する必要があります。

一般に点群OBJと呼ばれるデータにも、複数の構造があります。OBJには頂点や点を記録できますが、UVを利用した一般的な画像貼り付けが直接関係するのは、f行による面と、その面から参照されるvt行を持つメッシュです。OBJでは形状頂点、UV、法線を別の配列として保持し、面ごとにそれぞれ異なる番号を参照できます。NVIDIA Docs

面を持たない点の集合で色が乱れている場合は、通常のUV補正では直らないことがあります。OBJの頂点行へ色を追加する方式も一部のソフトウェアで利用されていますが、これはすべてのOBJ読み込み環境で共通に扱われるとは限りません。純粋な点データでは、頂点色の記録方法、点の並び、変換時の属性対応、アップロード先の点色情報への対応を調べます。

表示異常が発生したときは、範囲外のUVを直ちに0から1へ押し込むのではなく、画像の繰り返しを意図しているのか、わずかな計算誤差なのか、UV島全体が移動しているのか、面とUVの参照関係が壊れているのかを切り分けます。原因に合わない補正を適用すると、読み込みエラーは減っても、本来の画像対応が失われるおそれがあります。

補正前に確認したいOBJとUVの基本構造

UV補正を始める前に、OBJファイルの内容と関連ファイルの構成を確認します。一般的なOBJは可読性のあるテキスト形式で、頂点、テクスチャ座標、法線、面、グループ、材質参照などが行単位で記録されています。

三次元の頂点座標はv、UV座標はvt、法線はvn、面はfから始まる行で表されます。面付きのOBJで画像表示が乱れている場合は、vt行の数値だけでなく、f行に記載された形状頂点番号、UV番号、法線番号の組み合わせも確認します。

OBJでは、形状頂点とUV座標が別々の番号で管理されます。1つの三次元頂点が、面によって異なるUVを参照することもあります。これはUVの継ぎ目や材質境界を表すために必要な構造です。形状頂点数とUV数が一致しないことだけを理由に、異常と判断することはできません。NVIDIA Docs

注意したいのは、vt行を削除、追加、並べ替えした場合です。面が参照するUV番号を同時に更新しなければ、別の画像位置が割り当てられます。範囲外UVだけを削除して番号を詰める操作は、後続する多数の面へ影響するため避けます。

OBJの面参照には、先頭から数える正の番号だけでなく、直前に定義された要素から相対的に参照する負の番号が使われる場合もあります。検査用の処理を作る場合は、単純に番号が1以上かを見るだけではなく、OBJの参照規則に従って実在する要素へ解決できるかを確認します。

最初の数値確認では、UとVの最小値、最大値、0未満の個数、1を超える個数、極端な値の有無を調べます。最大値と最小値だけでなく、分布や連続性を見ることが重要です。Uが0から6まで規則的に変化していれば、横方向への反復を意図している可能性があります。一部だけ数百や数千へ飛んでいる場合は、書き出し時の計算、未初期化値、区切り文字、桁の解釈などを疑います。

負の値も同様です。Uがマイナス1から1まで規則的に続いている場合と、数点だけ極端な負数になっている場合では、補正方針が異なります。前者は反復配置の可能性がありますが、後者は異常値や参照ずれの可能性があります。

UVの分布と併せて、テクスチャ画像の用途を確認します。同じ模様を繰り返す画像なのか、複数の撮影範囲を一枚へまとめたテクスチャアトラスなのか、現場の実写を焼き付けた画像なのかによって、選べる補正法が変わります。周期模様であれば折り返しを検討できますが、部位ごとに固有の画像を割り当てたデータへ同じ処理を行うと、別の部位が同じ画像領域へ重なる可能性があります。

OBJが参照するMTLファイル、MTLが参照する画像ファイルも確認します。画像名、拡張子、保存場所、大文字と小文字、空白や記号の扱いが読み込み環境によって異なることがあります。UVが正常でも、画像参照が解決できなければ正しい表示にはなりません。

画像を外した単色表示も行います。単色でも面がちらつく、欠ける、見る方向によって消える場合は、UVではなく重複面、面の向き、法線、自己交差、極端に細い面などが原因の可能性があります。

補正作業では原本を直接上書きしません。取得直後または変換直後の原本、検証用の複製、補正後、アップロード確認済みというように版を分けます。UVは多数の面から共有されることがあるため、一括処理を誤った場合に元へ戻せる状態が必要です。

補正法1 UV座標を周期的に折り返す

1つ目の補正法は、範囲外のUV座標を周期的な位置へ変換する方法です。同じ画像を複数回繰り返すことが本来の目的であり、アップロード先が範囲外UVの反復表示に対応していない場合に候補となります。

基本的には、UまたはVから床関数で求めた整数部分を差し引き、0以上1未満の範囲へ移します。Uが2.25なら0.25、Uが4.8なら0.8となります。負の値を含めて処理する場合は、Uがマイナス0.2なら0.8となる計算を使います。単に符号を外す処理では0.2となり、元の周期位置とは異なります。

ただし、整数値の扱いには注意が必要です。周期変換では1、2、マイナス1などが0へ変換されます。反復表示では0と1が同じ境界を示す場合がありますが、補正後のデータを端固定で表示する場合は、0と1の違いが見た目へ影響することがあります。画像端を明示的に使っているUVまで機械的に0へ変換しないようにします。

さらに重要なのが、面を構成するUV間の補間です。たとえば同じ三角形の頂点がU=0.98、U=1.02、U=1.04であった場合、各値を個別に折り返すと0.98、0.02、0.04となります。反復表示では近接していた座標ですが、0から1へ固定した画像上では両端へ分かれ、三角形内部に画像全体が引き延ばされる可能性があります。

このような面では、単に全vt行へ周期変換を行うだけでは不十分です。周期境界をまたぐ面を検出し、面の両側でUVを分ける、必要なUVを複製する、面を境界で分割するなどの処理が必要になる場合があります。OBJは面ごとに異なるUV番号を参照できるため、三次元位置を共有したままUVの継ぎ目を作ることが可能です。NVIDIA Docs

周期的な折り返しが向いているのは、地面、壁、舗装、屋根などへ同じ模様を一定の縮尺で繰り返しているデータです。UVが整数をまたいで規則的に分布し、画像自体も端同士が連続するように作られている場合は、元の見た目を保ちやすくなります。

一方で、撮影画像をまとめたテクスチャアトラスや、面ごとに固有の画像領域を割り当てたデータには安易に適用できません。Uが1.2の領域と0.2の領域が元々別の写真を示している場合、折り返しによって同じ場所へ重なります。

MTLの-clampが無効の場合に反復するという従来仕様はありますが、アップロード先がその指定を解釈するとは限りません。また、描画環境には複数の範囲外処理があり、OBJやMTLからすべてを同じ方法で再現できるとは限りません。最終的なアップロード先での表示確認が必要です。Khronos Registry+1

補正前には問題のある範囲だけを複製し、周期変換後の模様の大きさ、向き、継ぎ目を確認します。範囲外UVが意図的な反復を表していると確認できた場合に限り、全体への適用を検討します。

補正法2 UV座標を画像の境界内へ固定する

2つ目の補正法は、0未満のUVを0へ、1を超えるUVを1へ固定する方法です。これはUV値そのものを書き換える処理であり、ビューアー側の範囲外設定を変更する操作とは区別します。

この方法は、UVの大半が0から1へ収まり、一部だけがわずかにはみ出している場合に適しています。Uがマイナス0.0001、1.0001などになっている場合は、計算誤差、変換時の丸め、書き出し処理の差による微小なずれの可能性があります。はみ出し量が十分に小さければ、0または1へ固定しても画像上の位置はほとんど変わりません。

一方、Uが2や5になっている座標を一律に1へ固定すると、多数のUVが画像の右端へ集中します。面の広い範囲が画像端の狭い領域だけを参照し、帯状の色や強い引き延ばしが発生する可能性があります。境界固定は、大きな範囲外値を救済する一般的な方法ではありません。

画像端の見え方は、補間方法、縮小画像の生成、テクスチャの反復設定、端固定の方式によって異なります。描画環境によっては、端固定が最外周の画素中心を参照するよう処理されます。そのため、すべてのデータへ機械的に半画素分の移動を加えれば安全になるとは限りません。Khronos Registry

テクスチャアトラスで隣の領域の色が混ざる場合は、UVを少し内側へ寄せるだけでなく、画像側へ余白を設ける方法を検討します。各UV島の外周へ同じ色を延長した余白を作ることで、縮小表示や補間時に隣接領域の色が入りにくくなります。必要な余白量は、画像解像度、縮小率、アップロード先の処理によって変わるため、固定値を万能な基準として扱わないようにします。

UVを内側へ移す場合は、画像の幅と高さを確認し、U方向とV方向で別々に移動量を計算します。正方形でない画像に同じ数値を適用すると、画素換算の余白が縦横で異なります。さらに、縮小画像や自動生成される低解像度画像でも境界が維持されるかを確認します。

境界固定が適切かを判断する際は、範囲外UVの割合とはみ出し量を記録します。全体のごく一部が微小にはみ出しているなら、影響を限定できます。大半が範囲外であれば、反復、全体移動、縮尺、テクスチャ変換、参照破損などを先に調べます。

補正後は、画像端に沿って不自然な筋、単色の帯、引き延ばしが発生していないかを確認します。異常が残る場合は、固定されたUVが一か所へ集中していないかを調べ、UV島の移動や再展開へ切り替えます。

補正法3 UV島を縮小・移動して範囲内へ収める

3つ目の補正法は、連続した面に対応するUVのまとまりを縮小または平行移動し、0から1の範囲内へ収める方法です。UV島の内部構造が正常で、全体が一定量だけずれている場合や、一定倍率で範囲を超えている場合に候補となります。

全体が同じ量だけ移動している場合は、縮小せず平行移動だけで補正できることがあります。Uが1から2、Vがマイナス1から0へ分布している場合は、Uから1を引き、Vへ1を加えることで0から1へ収められます。UV島の大きさを変えないため、画像上で使う画素密度も維持できます。

UV島が0から1より大きい場合は、縮小と移動を組み合わせます。Uの最小値がマイナス2、最大値が6であればU方向の幅は8です。Vの最小値が0、最大値が4ならV方向の幅は4です。UとVを別々に0から1へ正規化すると、縦横で異なる倍率が使われ、画像が変形します。

縦横比を保つ必要がある場合は、U方向とV方向に同じ倍率を適用します。より大きな幅を持つ方向が範囲内へ収まる倍率を使い、余る方向には余白を残します。ただし、UV島の形を保つことと、元のテクスチャ画像との対応を保つことは別の問題です。

固有の撮影画像やテクスチャアトラスを使っている場合、UV島だけを移動または縮小すると、参照する画像位置が変わります。元の色を維持するには、画像側の対応領域にも同じ変換を行うか、新しいUV配置へテクスチャを焼き直す必要があります。UV島の縮小・移動は、テクスチャ画像を変更せずに実行できる万能な補正法ではありません。

一方、全面が同じ周期模様であり、画像内のどこを参照しても同じ規則で表現できる場合は、UV島の再配置を比較的行いやすくなります。ただし、模様の大きさを維持したい場合は、縮小倍率によって表面上の模様まで大きくならないかを確認します。

複数のUV島がある場合は、すべてを一括して変換する方法と、島ごとに配置し直す方法があります。一括変換では島同士の相対位置を保てますが、大きな空白まで含めて縮小すると画像の利用効率が下がります。島ごとの再配置では画像領域を効率よく使えますが、重なり、向き、余白、テクスチャの焼き直しを管理する必要があります。

縮小によってUV島が小さくなりすぎると、広い面が少ない画素だけを参照し、拡大時にぼやけます。範囲内へ収めることだけを優先せず、対象面の大きさと画像内で割り当てられる画素数のバランスを確認します。

作業時は、島ごとの最小値、最大値、倍率、移動量、回転の有無を記録します。補正後のデータをさらに補正するのではなく、原本から同じ計算を再実行できる状態にすると、丸め誤差や変形の蓄積を抑えられます。

補正法4 UVを再展開してテクスチャを作り直す

4つ目の補正法は、既存のUVを部分的に直すのではなく、三次元形状からUVを再展開し、新しい配置に合わせてテクスチャ画像を作り直す方法です。範囲外UVに規則性がない場合、面とUVの参照が崩れている場合、複数の補正を重ねても正しい画像対応へ戻らない場合に検討します。

UVの最小値と最大値を整えても表示が直らない場合は、単なる数値範囲の問題ではない可能性があります。面が誤ったUV番号を参照している、vt行が欠落している、異なる材質用のUVが混在している、変換時に面と属性の並びがずれているといった状態では、折り返しや境界固定だけで元の画像対応を復元できません。

再展開では、三次元形状を面のまとまりに分け、二次元領域へ配置します。平面に近い地面や壁では一定方向からの投影、円筒に近い形状では周囲を開く展開、複雑な形状では複数のUV島へ分割する方法が考えられます。選択する方法は対象形状と必要な見え方によって異なります。

点群から生成されたメッシュは、細かな三角形を多数含むことがあります。そのまま自動展開すると、多数の小さなUV島が生成され、継ぎ目や余白管理が増える可能性があります。自動処理だけで完了とせず、細長い島、極端に小さい島、重なった島、裏返った島がないかを確認します。

必要に応じて形状の整理を行いますが、UVの修正と形状の簡略化は別の変更として管理します。形状を簡略化すると、頂点数や面構成だけでなく、稜線、微細な凹凸、境界位置が変わる場合があります。測量、土量計算、出来形確認などへ使うデータでは、画像表示を直すための処理が三次元形状の精度へ影響していないかを確認します。

UVを再展開した場合、以前のテクスチャ画像をそのまま割り当てても正しく表示されないことがあります。新しいUV配置に合わせて、旧モデルの表面色や元画像を新しい画像へ焼き直します。新旧のUV配置が異なる状態で同じ画像だけを関連付けると、別の部位の色が貼られます。

新しい画像を作成した後は、UV島の重なり、向き、余白、画素密度を確認します。重なりが意図された共有なのか、誤配置なのかも区別します。実写テクスチャでは、異なる面が同じ領域を参照すると不自然な色の重複が発生します。

再書き出し時には、OBJ、MTL、画像を一式として更新します。OBJだけを更新し、古いMTLや画像を残すと、ファイル名が一致していても内容の組み合わせがずれる可能性があります。どの版のOBJ、MTL、画像を一組として扱うのかを明確にします。

UVを再展開する工程では、三次元座標、座標軸、単位、原点の設定が変わっていないかも確認します。UVは二次元の画像座標ですが、再書き出し設定によって形状座標まで変換される可能性があります。代表点の座標、全体寸法、標高差を補正前後で比較します。

UV再展開は作業範囲が大きい方法ですが、元の参照関係が復元できない場合は、部分修正を繰り返すよりも、整理された構造へ作り直したほうが検証しやすくなることがあります。

4つの補正法を選び分ける判断基準

4つの補正法は、UVの最大値や最小値だけでなく、UV分布、画像の用途、面との参照関係、最終的な閲覧環境を基準に選びます。

UVが整数をまたいで規則的に分布し、同じ画像を一定間隔で反復している場合は、周期的な折り返しが候補になります。ただし、周期境界をまたぐ面を個別に確認し、面内部で画像全体が引き延ばされない構造へ整える必要があります。

UVの大半が0から1に収まり、ごく小さな誤差だけが範囲外へ出ている場合は、境界固定が候補になります。はみ出し量が小さく、補正対象が少ないほど、元の見た目への影響を限定できます。

UV島全体が一定方向へずれている場合は平行移動を検討します。範囲が一定倍率で広がっている場合は、縦横比を保つ縮小と移動を検討します。ただし、固有の画像を使用している場合は、UVだけを動かさず、画像変換や焼き直しも行います。

UV値に規則性がなく、極端な値が多数ある場合、面の参照先が不明な場合、テクスチャとの対応を復元できない場合は、再展開を検討します。数値を0から1へ変換できても、画像対応が正しくなるとは限りません。

判断に迷う場合は、問題を含む小さな範囲を検証用データとして切り出します。各補正法を別々の複製へ適用し、画像の向き、模様の大きさ、境界の連続性、ぼやけ、色の欠落を比較します。

形状の頂点数、面数、代表点座標、全体寸法も併せて確認します。UV補正だけを行ったつもりでも、使用した編集環境の書き出し設定によって三次元形状が変更される可能性があるためです。

編集用の原本では範囲外UVを維持し、アップロード用の複製だけ互換性の高い構造へ変換する方法もあります。すべての編集環境と閲覧環境を一つのOBJで満たそうとせず、用途別に出力を分けると原本の表現を保持しやすくなります。

点群OBJアップロード前に行う検証手順

UVを補正した後は、編集環境で正常に見えたことだけで完了と判断せず、点群 OBJ アップロード先を想定した検証を行います。表示環境によって、MTLオプション、範囲外UV、画像補間、縮小画像、法線の扱いが異なる可能性があります。

最初に、OBJ、MTL、画像ファイルがそろっているかを確認します。OBJのmtllib、usemtl、MTLの画像参照が実在するファイルと一致しているかを調べます。補正時に画像名や材質名を変更した場合は、すべての参照を更新します。

関連ファイルを新しいフォルダへ複製し、そのフォルダ内のファイルだけで表示できるかを確認します。作業端末の絶対パスや別フォルダの画像へ依存していると、アップロード先で参照できません。

次に、UV座標の最小値、最大値、範囲外数、数値として解釈できない行を検査します。0から1へ収める方針であれば、意図しない範囲外UVが残っていないかを確認します。ただし、0から1へ収まっていることだけを合格条件とせず、面と画像の対応も確認します。

面が参照するUV番号も検査します。正の番号と負の相対番号を解決し、実在するvt行を参照しているかを確認します。UVを追加、削除、並べ替えした場合は、面参照が補正後の配列と一致しているかが重要です。

全体表示だけでなく、UまたはVが0付近と1付近になる面、周期境界をまたぐ面、UV島同士が近接する部分、細長い三角形、画像端を使う部分を拡大します。これらは補間や縮小表示による異常が現れやすい箇所です。

近距離と遠距離の両方で確認します。近距離では正常でも、遠距離表示や自動生成された縮小画像では島の境界に線が出る場合があります。反対に、遠距離では目立たなくても、拡大時に画像の引き延ばしや画素不足が見つかることがあります。

形状を回転し、複数方向から確認します。一方向からだけ黒く見える、裏側からしか見えない、見る角度によって消える場合は、UVではなく面方向、法線、片面表示が原因の可能性があります。単色表示や照明の影響を抑えた表示と比較します。

座標付きデータでは、補正前後の代表点座標、幅、奥行き、高さ、標高差を比較します。UVの編集が直接三次元座標を変えるものではなくても、再書き出し時の単位や軸設定によって形状が変わる可能性があります。

最初は問題部分だけを含む小容量OBJをアップロードします。補正方法とアップロード先の相性を確認してから全体へ適用すると、大容量データを繰り返し送信する手間を抑えられます。

全体アップロード後は、ローカル表示との差を記録します。反復の有無、上下反転、境界線、色の欠落、読み込み警告、材質の切り替わりを確認し、どの工程で差が発生したかを整理します。

補正しても表示が直らない場合の確認項目

UVを0から1へ収めても表示が直らない場合は、範囲外UV以外の原因を調べます。UVの範囲と、UVの参照が正しいこと、画像ファイルが正しいこと、形状が正常であることは別の確認項目です。

最初にOBJ、MTL、画像の対応を確認します。OBJが目的のMTLを参照しているか、面へ正しい材質が割り当てられているか、MTLが目的の画像を参照しているかを追跡します。面の途中で材質が切り替わっている場合は、一部だけ別の画像や無地の材質になることがあります。

画像形式や画像設定がアップロード先で扱えるかも確認します。作成環境で開けることと、アップロード先が同じ形式、色空間、透過情報を処理できることは同じではありません。変換する場合は元画像を保管し、変換後に縦横比と画素寸法を確認します。

画像の縦横比が変わると、同じUVでも模様が伸びます。横長画像を正方形へ変換した、余白を追加した、画像の一部を切り取った場合は、UVとの対応も更新する必要があります。

同じファイル名の画像を上書きしながら作業すると、古い画像を保持している環境と新しい画像を読む環境で表示が異なることがあります。版ごとにファイル名を分けるか、アップロード先の再読み込み条件を確認します。

重複面やほぼ同じ位置にある面が存在すると、複数の表面が競合してちらつきや縞模様を生じることがあります。これはUVの乱れに見える場合がありますが、UV範囲を直しても解消しません。

面の向きや法線が不整合な場合は、一部が黒く見えたり、片側から消えたりします。単色表示で同じ異常が出る場合は、面方向、法線、片面表示の設定を確認します。

UV島が意図せず重なっている場合は、異なる面が同じ画像領域を参照します。同じ模様を共有する目的なら許容できる場合がありますが、実写テクスチャでは別の構造物へ同じ色が貼られる原因になります。

画像領域間の余白不足も確認します。UVが0から1へ収まっていても、テクスチャアトラス内の島が密着していると、縮小表示時に隣の色が混ざる可能性があります。画像側へ余白を設け、低解像度表示でも色が混ざらないかを確認します。

OBJの数値を少ない小数桁へ丸めた場合、小さなUV島や細い境界では位置変化の影響が大きくなることがあります。不要な桁削減を避け、使用環境で必要な精度を保持します。

面を持たない点データで色が乱れている場合は、通常のUV補正対象ではありません。頂点へ色を付加するOBJ拡張はソフトウェア間で対応が異なるため、変換元とアップロード先が同じ属性配置へ対応しているかを確認します。UV、頂点色、材質色を混同しないことが重要です。

UV範囲外座標の再発を防ぐデータ管理

UV範囲外による表示異常を減らすには、補正方法だけでなく、書き出し条件と検査手順を定型化します。担当者や案件ごとに異なる方法で修正すると、同じ種類のデータでも結果が変わります。

編集用データとアップロード用データを分けます。編集用では反復表現のために範囲外UVを保持し、アップロード用では閲覧環境に合わせて再配置や焼き直しを行うことがあります。用途別に出力すれば、原本の表現を失わずに互換性を確保できます。

書き出し前には、UVの最小値、最大値、範囲外数、極端な値、数値として解釈できない行を確認します。範囲外をすべて異常とみなさず、意図した反復と異常値を区別します。

検査結果はUV値だけでなく、対象面、材質名、画像名と関連付けます。同じ範囲外値でも、周期模様を使う面と実写テクスチャを使う面では意味が異なります。

ファイル構成を統一し、OBJ、MTL、画像を一つの親フォルダ内で管理します。作業端末固有の保存場所へ依存する参照を避け、関連ファイルだけを別の場所へ移しても表示できる状態にします。

ファイル名には案件、対象、処理段階、版を区別できる情報を含めます。ただし、過度に長い名称、複雑な記号、環境によって解釈が変わりやすい文字は避けます。同じ名前で内容だけを上書きし続けると、OBJ、MTL、画像の版が混在しやすくなります。

取得直後または変換直後の原本、面生成後、UV補正後、画像焼き直し後、アップロード確認済みを分けて保存します。どの段階から異常が発生したかを追跡できるため、原因を絞り込みやすくなります。

補正記録には、補正前後のUV範囲、対象面、使用した方法、計算式、倍率、移動量、画像変更、検証環境、確認結果を残します。自動処理を使った場合は、処理プログラムや設定の版も記録します。

複数人で作業する場合は、補正法の判断基準を共有します。規則的な反復、微小なはみ出し、全体移動、参照破損を分け、各状態に対してどの検証を行うかを決めます。

正常UV、負のUV、1を超えるUV、周期境界をまたぐ面、テクスチャアトラスを含む小さな検証用OBJを用意する方法もあります。アップロード先の更新後に同じデータを確認すれば、範囲外UVや材質設定の扱いが変わったかを把握しやすくなります。

LRTK Phoneで取得した点群OBJを扱う際の注意点

LRTK Phoneで取得した点群をOBJへ出力または変換して扱う場合は、実際に書き出されたファイルの構造を確認します。LRTK Phoneは絶対座標付き点群の取得やクラウドでの保存、閲覧、編集、共有に対応していますが、UV、面、MTL、画像がどのような構成で含まれるかは、利用する処理工程や書き出し条件を基準に判断する必要があります。Lefixea Irtk

出力されたOBJが点だけを含むのか、三角形の面を含むのか、vt行を含むのか、MTLと画像を参照するのかを確認します。面やvtを持たないOBJでは、一般的な面用テクスチャのUV範囲外補正は対象になりません。

LRTK Phoneで取得した点群を別の工程でメッシュ化し、画像を貼り付けた場合は、その加工工程でUVが追加されています。取得直後の点群が正常でも、面生成、テクスチャ生成、軽量化、形式変換、再書き出しの段階でUV範囲外や参照ずれが生じる可能性があります。

原因を切り分けるには、取得直後、メッシュ生成後、画像割り当て後、アップロード用出力後の各段階を保存します。同じ場所を表示して比較し、どの段階から画像の乱れが始まったかを確認します。

UV座標と測量座標を混同しないことも重要です。UVは画像内の位置を示す値で、東西方向、南北方向、高さ、標高を示す三次元座標とは別です。UVを0から1へ補正しても、点群の位置ずれ、座標系の違い、標高基準の誤りは直りません。

反対に、三次元座標を原点付近へ移動したり、単位を変更したりしても、UV範囲外による画像表示の問題は通常解決しません。表示異常を調べる際は、三次元座標、面構造、UV、材質、画像参照を分けて確認します。

UVを再展開して書き出し直す場合は、代表点の座標、全体寸法、標高差が保持されているかを確認します。画像が正常になっても三次元位置が変わっていれば、測量、出来形確認、土量計算、図面との重ね合わせへそのまま利用できない可能性があります。

アップロード用データを軽量化するときは、形状の削減と画像の縮小を分けて管理します。面数を減らす処理ではUV参照が再構成されることがあり、画像だけを縮小すると判読できる細部が減る場合があります。加工後はUV範囲、面参照、代表座標を再検査します。

安全に活用するには、OBJだけを単独で管理せず、MTL、画像、変換条件、座標系、補正履歴を一つのデータセットとして扱います。使用中のアプリやクラウドの仕様が更新された場合は、実際の出力ファイルと公式案内を確認し、過去の処理条件をそのまま適用しないようにします。

まとめ

点群OBJのUV範囲外座標は、必ずしも破損を意味するものではありません。負の値や1を超える値が画像の反復を意図して使われる場合があります。ただし、範囲外UVの見え方は、OBJの数値だけでなく、MTL、画像、変換処理、アップロード先の描画設定によって変わります。

補正前には、対象OBJが点だけを持つのか、面とUVを持つメッシュなのかを確認します。面付きOBJでは、vt行の範囲だけでなく、f行のUV参照、材質割り当て、MTL、画像の組み合わせを確認します。

同じ画像を規則的に反復する構成では、周期的な折り返しが候補になります。ただし、周期境界をまたぐ面では、各UVを個別に折り返すだけで画像が引き延ばされる可能性があり、UVの継ぎ目を分ける処理が必要です。

UVの大半が正常で、ごく小さな誤差だけが範囲外へ出ている場合は、境界内への固定を検討できます。大きな範囲外値を一律に端へ固定すると、画像端へUVが集中するため適していません。また、半画素分の移動をすべての環境へ一律に適用するのではなく、画像解像度、補間、余白、最終ビューアーを確認します。

UV島の内部構造が正常で、全体がずれている場合は、縮小と移動が候補になります。ただし、実写画像やテクスチャアトラスでは、UVだけを動かすと画像対応が崩れます。画像側の変換またはテクスチャの焼き直しを併せて行います。

UV値に規則性がなく、面との参照関係まで崩れている場合は、UVを再展開し、新しい配置へテクスチャを作り直します。再書き出し後は、画像表示だけでなく、三次元座標、単位、面数、代表点、ファイル参照を補正前後で比較します。

どの方法でも原本を上書きせず、小容量の検証用データでアップロード結果を確認してから全体へ適用します。取得、メッシュ生成、画像割り当て、UV補正、書き出し、アップロードの各段階を分けて保存すれば、表示異常が発生した工程を特定しやすくなります。

LRTK Phoneで取得した点群をOBJとして活用する場合も、実際の出力構造と加工工程を確認し、UVと測量座標を分けて管理することが重要です。

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

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