LRTKレフィクシア株式会社

点群OBJのNゴンが崩れる原因と三角形化する4つの方法

点群OBJでNゴンが崩れる問題とは

点群 OBJ アップロードの作業では、編集画面で正常に見えていたメッシュが、別の環境へ読み込んだ後に欠けたり、ねじれたり、意図しない方向へ伸びたりすることがあります。特に、点群から生成したメッシュに頂点数の多い面が含まれていると、読み込み側の三角形化や面の表裏判定によって見え方が変わる可能性があります。

Nゴンは一般に5個以上の頂点を持つ多角形面を指します。実務では、互換性確認の対象として四角形を含む非三角形面をまとめて扱う場合もあります。本稿では、主に5頂点以上のNゴンに加え、大きくねじれた四角形や凹形状の面も確認対象とします。

OBJの多角形メッシュでは、頂点を定義する記述と、それらを番号で参照する面の記述を使えます。面の記述には3個以上の頂点参照を並べられるため、三角形だけでなく四角形やNゴンも保存できます。ただし、OBJに多角形として保存できることと、すべての読み込み環境が同じ方法で表示できることは同じではありません。

多くの表示処理や変換処理では、四角形やNゴンを最終的に三角形へ分割して扱います。同じ輪郭でも三角形の組み合わせは一通りではありません。作成側と読み込み側で分割方法が異なると、ねじれた面の折れ方や陰影が変わることがあります。

完全に平面で、自己交差がなく、輪郭順に頂点が並んだ凸形状のNゴンは比較的扱いやすい一方、凹形状、非平面、自己交差、重複頂点を含む面は不安定になりやすい傾向があります。読み込み側の実装によっては、輪郭の外側へ三角形が張られたように見えたり、本来の開口部を横切る面が生じたりすることがあります。

点群から生成したメッシュでは、計測ノイズ、欠測、点密度のばらつき、複数回取得したデータの重なりなどが含まれる場合があります。これらを自動的に結んで面を作ると、細長い面、ほぼ面積のない面、離れた領域を結ぶ面、非平面の多角形が生じることがあります。

この問題を減らす基本は、アップロード先へNゴンの分割を任せず、書き出し前に三角形の接続関係を確定することです。ただし、三角形化は異常な面を自動修復する処理ではありません。元の輪郭や頂点参照が不正であれば、異常なNゴンが複数の異常な三角形へ置き換わるだけの場合があります。

そのため、三角形化の前に、頂点の並び、面の平面性、自己交差、重複頂点、重複面、法線、欠測部をまたぐ接続などを確認します。対象が面を持つメッシュなのか、点要素として扱うデータなのかを区別することも重要です。

Nゴンと三角形ポリゴンの違い

三角形ポリゴンは3個の頂点で構成されます。3点が一直線上に並んでいなければ1つの平面が定まるため、四角形以上の面に比べて内部形状の解釈が明確です。このため、異なる表示環境や変換環境でも形状の接続関係を一致させやすくなります。

一方、4個以上の頂点を持つ面では、すべての頂点が同じ平面上にあるとは限りません。例えば、4頂点のうち1点だけ高さが異なる四角形は、1枚の平面としては表現できません。表示するには、いずれかの対角線を使って2枚の三角形へ分ける必要があります。

選ぶ対角線によって折れ曲がる方向が変わります。高さの差が小さければ陰影の違いとして現れやすく、高さの差が大きければ輪郭付近の見え方や他面との交差にも影響することがあります。頂点数の多いNゴンでは分割候補が増えるため、読み込み環境の違いが表面化しやすくなります。

Nゴンには、編集途中の輪郭を把握しやすいという利点があります。平らな床や壁を1枚の面として管理すれば、輪郭の変更や部材の選択を行いやすい場合があります。ただし、編集しやすい面構成が、そのままデータ交換に適した面構成とは限りません。

三角形化すると、どの頂点同士を結ぶかが面ごとに明確になります。読み込み側がNゴンの分割方向を決める必要が減るため、環境差を抑えやすくなります。特に、複数の変換処理を通す場合や、アップロード先のNゴン対応が明確でない場合に有効です。

ただし、三角形であれば必ず正常とは限りません。3頂点がほぼ一直線に並ぶと面積が極端に小さくなります。同じ位置の頂点を複数回参照すれば、実質的に面を作れません。面の頂点順序が周囲と逆であれば、幾何学的な表向きが反対になる可能性があります。

また、OBJで点を扱う場合は、頂点を定義する記述だけでなく、点要素として参照する記述や、読み込み側の点群対応が関係します。頂点の定義だけが並び、面や点要素の記述がないOBJを、すべての環境が点群として表示するとは限りません。

したがって、対象のOBJに面の記述があるかを最初に確認します。面がなければNゴンも三角形も存在しないため、三角形化は対策になりません。その場合は、点要素の記述、座標値、色属性の互換性、点数、表示側の点群対応などを確認します。

点群OBJのNゴンが崩れる主な原因

Nゴンが崩れる代表的な原因は、読み込み側による三角形分割の違いです。OBJに4個以上の頂点を参照する面が記録されていると、表示や変換の過程で三角形へ分割される場合があります。作成側が想定した分割と異なれば、折れ方や陰影が変化します。

特に注意が必要なのが、内側へくぼんだ凹形状のNゴンです。適切な三角形化を行えば輪郭内に分割できますが、対応が不十分な読み込み処理や不正な頂点順序では、凹部を横切る三角形が生じることがあります。L字形やコの字形の面では、欠けた部分が埋まったように見える場合があります。

面を構成する頂点が同一平面上にないことも原因になります。地形や曲面から作成したNゴンでは、頂点ごとに高さが異なり、面全体がねじれていることがあります。作成環境と読み込み環境で三角形化の方向が異なると、折れ目の位置も変わります。

頂点の並びが輪郭順になっていない場合は、面の辺が途中で交差します。自己交差した面では、どの範囲を内側とするかが曖昧です。自動三角形化の前に、頂点を輪郭に沿った順序へ並べ直すか、面を削除して単純な輪郭から作り直す必要があります。

面の頂点順序は、幾何学的な面の向きに関係します。ただし、OBJには頂点法線を別に記録できるため、頂点順序から得られる面の向きと、陰影計算に使われる法線が一致しない場合もあります。また、裏面を非表示にするかどうかは読み込み側の表示設定に依存します。

重複頂点も確認が必要です。同じ位置または極めて近い位置に複数の頂点があり、それらが同じ面や隣接面で不適切に参照されると、面積の小さい三角形や細い隙間が生じます。見た目では1点に見えても、内部では別の頂点として扱われることがあります。

反対に、頂点を大きすぎる距離で結合すると、本来別の位置にある頂点まで1点へまとめられます。輪郭がつぶれたり、穴が閉じたり、複数の辺が同じ位置へ集まったりするため、結合距離はデータの単位と必要精度に合わせる必要があります。

欠測部をまたいで離れた点同士を結んだ面も問題になります。地面と構造物、穴の両側、手前と奥などが誤って接続されると、大きな面が斜めに伸びます。三角形化しても誤接続そのものは残るため、異常面を先に削除します。

標準的なOBJの多角形面は、1つの面記述に1本の順序付き頂点列を持ちます。外周とは別に内周を指定する仕組みとしては扱えないため、穴を持つ領域は、開口部の周囲を複数の面で構成する方が安全です。外周と内周を1本の輪郭へ無理に接続すると、意図しない帯や交差面が生じることがあります。

大きな座標値は、OBJ形式そのものの誤りではありません。ただし、読み込み側が限られた数値精度で座標を処理する場合、原点から遠い位置にある近接頂点の差を十分に保持できないことがあります。巨大座標と極端に細い面が組み合わさる場合は、共通のローカル原点を検討します。

同じ位置に複数の面が重なっていると、表示時にちらつきが発生することがあります。Nゴンの分割結果が異なる重複面が重なれば、表面が細かく乱れたように見える場合もあります。

Nゴンの崩れは複数の原因が重なって起こることがあります。凹形状で非平面の面に重複頂点が含まれ、さらに法線が不整合という状態も考えられます。三角形化だけを繰り返さず、面の構造を順番に確認することが重要です。

三角形化の前に確認する項目

三角形化を始める前に、元データを複製します。編集用データとアップロード用データを分け、原本へ直接処理を加えないようにします。三角形化後は面数が増え、Nゴンの輪郭を使った編集が難しくなることがあります。

次に、対象が点要素なのか、面を持つメッシュなのかを確認します。OBJでは頂点定義、点、線、面が別の要素として扱われます。面の記述がなければ三角形化の対象はありません。点として表示したい場合は、点要素の有無と読み込み側の対応を確認します。

メッシュであることを確認したら、不要な範囲を整理します。計測対象外の地面、遠方物、通行人、植生、仮設物などが含まれていると、メッシュ生成時に意図しない接続が作られる可能性があります。必要範囲だけを残すことで、確認対象を減らせます。

モデル全体を複数方向から確認し、遠くへ伸びた面、輪郭を横切る面、欠測部を覆う面がないかを探します。異常面を残したまま一括で三角形化すると、1枚の異常面が多数の三角形へ分かれ、後から選択しにくくなります。

重複頂点と重複面も確認します。頂点を結合する場合は、結合距離を必要以上に大きくしないようにします。単位がメートルかミリメートルかによって、同じ設定値でも実際の距離は大きく異なります。

面積が極端に小さいポリゴンも整理します。ほぼ一直線上に並ぶ頂点で構成された面、同じ頂点を複数回参照する面、非常に短い辺を含む面は、三角形化後も不安定になりやすいためです。

自己交差を含む面は、頂点順序を修正するか、面を削除して作り直します。平面性も確認し、平らであるべき床や壁に大きなねじれがある場合は、位置合わせのずれや計測ノイズを疑います。必要に応じて、形状変化に沿って複数の面へ分割します。

法線の確認では、幾何学的な面の向きと、OBJに記録された頂点法線を分けて考えます。表裏を区別できる表示で面の向きを確認し、陰影が不自然な場合は頂点法線やスムージング設定も確認します。

OBJの一般的な頂点や面の記述には、現実空間の単位、座標参照系、上方向を一意に伝える必須項目がありません。作成側と読み込み側で、単位、軸方向、原点移動量を別途共有します。

最後に、アップロード先のファイル容量、面数、関連ファイル、処理時間の条件を確認します。仕様が不明な場合は、同じ設定で作成した小規模なOBJを先に試します。

方法1 書き出し前にモデル全体を三角形化する

最も基本的な方法は、OBJを書き出す前に、アップロード対象のメッシュ全体を三角形化することです。すべての面を三角形として確定させることで、読み込み側がNゴンの分割方向を決める余地を減らせます。

まず、原本からアップロード用の複製を作成します。不要なオブジェクト、作業用の補助面、重複面、明らかな異常面を除外し、共有に必要な形状だけを残します。

次に、アップロード対象の面を選択して三角形化します。一般的な単純三角形化では、既存の境界頂点を使って面を分割します。四角形は通常2枚、n頂点の単純多角形は通常nマイナス2枚の三角形になります。

ツールによっては、三角形の作り方を選べる場合があります。長い辺を避ける方法、形状の美しさを優先する方法、既存の対角線を固定する方法などが考えられます。平面では差が小さくても、地形やねじれた面では結果が変わります。

処理後は、どの方向に対角線が追加されたかを確認します。長い対角線が尾根や谷を横断している場合、不自然な折れ目が生じていないかを確認します。凹形状では、輪郭外へはみ出す三角形や開口部を横切る三角形がないかを確認します。

三角形化しただけで頂点位置が変わるのは、単純な面分割とは別の処理が同時に行われた可能性があります。補助頂点の追加、再メッシュ化、簡略化、平滑化などを併用している場合は、三角形化だけの結果と分けて確認します。

法線は必ず再計算するのではなく、三角形化後の状態を確認して判断します。カスタム法線や意図したスムーズ表示を保持したい場合、無条件の再計算で見え方が変わることがあります。面の向きや陰影に不整合がある場合に、必要な範囲で再計算します。

モデル全体の三角形化は、アップロード先のNゴン対応が不明な場合や、複数環境で同じOBJを利用する場合に適しています。手順が分かりやすく、Nゴンの分割差をまとめて減らせます。

一方、高密度な点群メッシュでは面数と面記述が増えます。もともと大部分が三角形であれば増加は小さく、頂点数の多いNゴンが多数あれば増加は大きくなります。

全体を三角形化しても、自己交差、重複頂点、無効な頂点参照、非多様体形状、誤った位置合わせは解消されません。問題が残る場合は、元の面構造を確認します。

方法2 問題のあるNゴンだけを部分的に三角形化する

すべての面を三角形化すると編集性や管理性が下がる場合は、崩れやすい面だけを部分的に処理します。広い平面や編集しやすい四角形を残しながら、互換性に問題がある領域だけを修正する方法です。

最初に、5個以上の頂点を持つ面を抽出します。ただし、四角形でも大きくねじれているものは対象に含めます。頂点数だけで判断せず、凹形状、非平面、自己交差、開口部周辺、極端に細い面を優先します。

凹形状のNゴンは、単純な凸形状へ分けてから三角形化すると確認しやすくなります。内側へくぼんだ頂点を基準に辺を追加し、輪郭の外側を横切らない複数の面へ分割します。

例えば、上から見てL字形の床面を1枚のNゴンとして残すと、読み込み処理によっては欠けた部分を横切る三角形が生じることがあります。L字形を複数の単純な面へ分ければ、意図した輪郭内に三角形を配置しやすくなります。

非平面の面は、形状の変化に沿って分割します。地形では尾根、谷、法肩、法尻などの特徴線を意識します。建物では角、段差、開口部の縁などに辺を配置します。

穴のある領域は、外周と内周を1枚の面として扱わず、開口部の周囲を複数の面で構成します。これにより、開口部を横切る三角形が作られる可能性を抑えられます。

部分的な三角形化では、極端に細い三角形を避けます。必要に応じて、適切な位置へ頂点を追加して形状を分けます。ただし、頂点追加は単純な三角形化とは別の編集なので、元形状との差を確認します。

平らで単純な領域まで細分化しても、見た目や測定精度が向上するとは限りません。崩れやすい場所、業務上重要な場所、形状変化が大きい場所を優先します。

処理後は、三角形化した領域と未処理領域の境界を確認します。見た目では接していても頂点が共有されていなければ、細い隙間が見えることがあります。境界座標と頂点共有の状態を確認します。

部分三角形化は全体処理より手間がかかりますが、データ容量と編集性を保ちやすい方法です。重要な構造を優先して処理したい場合に向いています。

方法3 頂点順序と法線を整えてから三角形化する

三角形化後も面が欠ける場合や、見る方向によって表示されたり消えたりする場合は、頂点順序、幾何学的な面の向き、頂点法線を分けて確認します。

OBJの面は、面記述に並ぶ頂点参照の順序から幾何学的な向きを求められます。隣接面の順序が統一されていれば、面の向きもそろいやすくなります。1枚だけ逆順なら、その面の表向きが周囲と反対になることがあります。

ただし、OBJには頂点法線を別に記録できます。頂点法線は主に陰影の計算に使われ、面の幾何学的な向きと必ず一致するとは限りません。さらに、裏面を描画するか除外するかは閲覧環境の設定に依存します。

編集環境で両面が常に表示される場合、反転面を発見しにくくなります。表面と裏面を区別できる表示へ切り替え、地形では上側、閉じた構造物では外側を基本として確認します。ただし、内部閲覧を目的とするモデルでは用途に合わせます。

自動で面の向きをそろえる前に、面同士が正しく接続されているかを確認します。境界が切れていたり、同じ位置に別々の頂点が存在したりすると、隣接関係を正しく判断できないことがあります。

重複面も処理前に削除します。同じ位置に表向きと裏向きの面が重なると、視点によってちらつくことがあります。三角形化後に重複面が多数へ分かれると確認が難しくなります。

頂点順序を整えた後に三角形化し、面の向きと陰影を再確認します。法線の再計算は、法線が欠落している、反転している、面構成との不整合がある場合に行います。意図したカスタム法線がある場合は、保持した版と再計算した版を比較します。

曲面を滑らかに見せたい領域では、隣接面の法線を連続的に扱う設定があります。一方、建物の角や段差では、境界を明確に残す方が形状を把握しやすい場合があります。

三角形化後に不自然な濃淡が出る場合は、面の向きだけでなく、頂点法線、スムージング、極端に細い三角形、大きな三角形の配置も確認します。単色表示や輪郭表示で、材質と形状の問題を分けます。

OBJへ頂点法線を含めるかどうかは、アップロード先の処理に合わせます。保存済み法線を使う環境もあれば、面形状から再計算する環境もあります。小さな検証データで、法線ありと法線なしを比較します。

この方法は、面の一部が欠ける、裏側からだけ見える、黒い面が出る、三角形化後も陰影が安定しない場合に有効です。面が大きく伸びる場合や開口部を横切る場合は、法線ではなく輪郭と頂点参照を修正します。

方法4 データを範囲分割して段階的に三角形化する

大規模な点群メッシュを一括処理すると、処理時間やメモリ使用量が増える場合があります。広い現場や高密度な計測結果では、データを複数範囲へ分け、段階的に三角形化する方法が有効です。

分割単位は、現場区画、建物、階層、道路区間、施工範囲、取得日など、後から識別しやすい基準にします。面数だけで機械的に分けると、重要な構造が途中で切れる可能性があります。

分割位置は、複雑な曲面や構造物の中央を避けます。平らな地面、区画境界、道路の縁、建物の角など、位置を再確認しやすい場所で分けます。

まず代表的な1区画を切り出し、不要点と異常面を整理してから三角形化します。そのOBJを書き出し、再読み込みとアップロード後の表示まで確認します。問題がなければ、同じ条件を他区画へ適用します。

検証区画には、平面だけでなく、凹形状、段差、開口部、斜面など、現場内の代表的な形状を含めます。単純な場所だけで成功しても、複雑な場所で同じ結果になるとは限りません。

分割後は、隣接区画の境界を確認します。各区画で別々に頂点結合や簡略化を行うと、境界座標が変わり、隙間や重なりが発生することがあります。必要なら分割前に共通境界を確定します。

複数のOBJを同じ位置へ配置する場合は、座標基準を統一します。大きな座標による表示精度の影響を抑えるためにローカル原点へ移動することはありますが、区画ごとに異なる移動量を使うと再配置が難しくなります。

原点を移動した場合は、元座標から差し引いた値を記録します。同じ現場では共通原点を使うと重ね合わせやすくなります。座標変換の記録がないと、形状が正常でも位置関係を復元できません。

範囲分割には、更新作業を効率化できる利点もあります。再計測した区画だけを作り直せば、毎回すべてのデータを処理する必要がありません。

ただし、分割数を増やしすぎると管理が複雑になります。ファイル名に区画、取得日、処理日、版を含め、どのOBJがどの範囲に対応するかを明確にします。

三角形化後のOBJを検証する手順

三角形化が完了しても、編集画面で正常に見えるだけでは十分ではありません。実際に書き出されたOBJを新しい環境へ読み込み、データ交換後の状態を確認します。

最初に、三角形化したモデルをOBJとして書き出します。元モデルが存在する画面へ重ねて読み戻すのではなく、新規の空の作業環境へ読み込みます。元モデルとの重なりで欠落や重複を見逃すのを防ぐためです。

読み込み後は、モデル全体の位置、軸方向、縮尺を確認します。三角形化とは別に、単位や座標の解釈が変わっている可能性があります。既知の距離、基準点、外形寸法で比較します。

次に、元のNゴンがあった領域を拡大します。輪郭からはみ出す面、開口部を横切る面、遠く離れた頂点へ伸びる三角形がないかを確認します。

輪郭線を表示できる環境では、三角形の接続状態を確認します。陰影だけでは、細長い面や重複面を見落とすことがあります。正面、上面、側面、斜め方向から確認します。

片面表示でも確認します。特定方向から消える三角形があれば、面の向きや表示側の裏面除外設定を確認します。陰影だけが不自然な場合は、頂点法線とスムージングを確認します。

OBJの面記述も確認します。三角形化が正しく反映されていれば、対象範囲の面は3個の頂点参照で構成されます。4個以上の参照が残る場合は、処理対象外の面があるか、書き出し時に別の面構成が使われた可能性があります。

大規模なOBJは目視だけで確認できません。面ごとの頂点参照数を集計し、三角形以外の面、無効な頂点参照、同じ頂点を繰り返す面、面積が極端に小さい面を検査できる仕組みを利用します。

複数ファイルを結合した場合やOBJを手動編集した場合は、頂点番号の整合性を確認します。存在しない頂点を参照する面は、欠落や読み込み失敗の原因になります。

アップロード確認では、最初から最大容量の本番データを使わず、小規模な検証用OBJを先に試します。小規模データが成功し、大規模データだけ失敗する場合は、容量、面数、処理時間、通信状態なども確認します。

元のモデル、書き出し直後のOBJ、アップロード後の表示を比較すると、どの工程で問題が発生したかを切り分けやすくなります。

三角形化で容量が増える場合の調整方法

三角形化後に容量が増えた場合は、頂点数と面数を分けて確認します。単純な三角形化では既存頂点を利用することが多いため、頂点数は大きく変わらず、面の記述数が増えることがあります。

n頂点の単純な多角形は通常nマイナス2枚の三角形へ分かれます。頂点数の多いNゴンが多数含まれるほど、面の行数と頂点参照の記述量が増えます。描画側でも三角形数が増えるため、処理負荷に影響する場合があります。

容量を抑えるには、まず不要な面を削除します。計測対象外の範囲、重複面、孤立した小面、用途上不要な内部面を確認します。ただし、断面確認や内部表示に必要な面まで削除しないようにします。

形状変化の少ない平面では、頂点や面を減らせる場合があります。一方、段差、角、縁石、配管、法面の境界では、面を減らしすぎると形状が変わります。削減率だけで判断せず、元メッシュとの差と断面を確認します。

点群由来の微細なノイズがすべてメッシュ化されると、多数の細かな三角形が作られます。用途に不要なノイズであれば、メッシュ生成前の点群整理や、形状を壊さない範囲の平滑化を検討します。

平滑化を強くしすぎると、必要な角や段差まで丸くなります。出来形確認、断面作成、体積計算などに使う場合は、処理前後の差を確認します。

OBJはテキスト形式なので、座標の小数桁数も容量に影響します。必要精度を超える桁を減らせる場合がありますが、丸めすぎると近接頂点が同じ座標になり、形状や面積が変わることがあります。

範囲分割も有効です。1つの巨大なOBJを複数区画へ分ければ、1回のアップロード容量を抑えられます。必要範囲だけを読み込む運用なら、操作時の負荷も抑えやすくなります。

三角形化、簡略化、小数桁調整、平滑化を同時に実施すると、どの処理が形状へ影響したか分かりにくくなります。1工程ずつ実施し、各段階で形状と容量を確認します。

重要なのは、容量だけを小さくすることではありません。閲覧用、測定用、保管用など、用途ごとに必要な密度と精度を定め、目的別のOBJを用意します。

崩れ方から原因を切り分ける方法

面がモデル外まで大きく伸びる場合は、離れた頂点の参照、頂点順序の乱れ、自己交差、欠測部をまたぐ誤接続を疑います。異常面の頂点を順番に確認し、輪郭に沿って並んでいるかを調べます。

凹形状の内側が埋まる場合は、三角形化が輪郭を意図どおり解釈できていない可能性があります。面を単純な形へ分け、くぼんだ範囲や開口部を横断しない辺を追加します。

面が見る方向によって消える場合は、幾何学的な面の向きと裏面表示の設定を確認します。陰影だけが反転して見える場合は、頂点法線も確認します。

表面へ不自然な折れ目が現れる場合は、非平面のNゴンが異なる方向で三角形化された可能性があります。地形の尾根や谷、構造物の角など、形状の特徴に沿った分割へ修正します。

細かなちらつきが発生する場合は、重複面やほぼ同じ位置の複数表面を確認します。視点を動かすと模様が変化する場合は、面同士が競合している可能性があります。

黒い三角形が現れる場合は、面の向き、頂点法線、法線補間、面積の小さい三角形、重複頂点を確認します。照明や材質の影響を分けるため、単色表示と輪郭表示も使います。

アップロードが途中で止まる場合は、Nゴンだけが原因とは限りません。ファイル容量、頂点数、面数、通信状態、処理時間、文字コード、関連ファイルの構成も確認します。

三角形化済みの小さなOBJが正常にアップロードできるかを試すと、形状構造とデータ規模の問題を分けやすくなります。特定範囲だけが欠ける場合は、その周辺を別ファイルへ切り出し、問題を起こす面を絞り込みます。

修正時には、一度に複数条件を変えないことが重要です。三角形化、法線処理、頂点結合、簡略化、座標移動を同時に行うと、どの処理が結果へ影響したか分からなくなります。

点群OBJアップロードを安定させる運用方法

点群OBJを継続的に扱う場合は、担当者ごとの経験だけに頼らず、書き出しと検証の手順を標準化します。三角形化の方法、面の向き、法線、単位、軸方向、座標基準、分割方法、ファイル名、検証項目をそろえます。

編集用データとアップロード用データは分けて保存します。編集用ではNゴンや四角形を残し、輪郭を修正しやすい状態にします。アップロード用では、必要範囲を複製し、三角形化や軽量化を行います。

原本の点群も残します。メッシュ化したデータだけを保存すると、後から異なる条件で表面を作り直せません。取得時の点群、編集用メッシュ、アップロード用OBJを区別します。

ファイル名には、現場、範囲、取得日、処理日、版を識別できる情報を含めます。同じ名前で上書きし続けると、正常だった版へ戻れなくなります。

処理条件も記録します。三角形化した範囲、頂点結合距離、簡略化条件、座標移動量、小数桁、法線処理を残すと、別の担当者でも再現しやすくなります。

アップロード前の確認項目を固定します。外形、縮尺、軸方向、座標、面の欠落、面の向き、頂点法線、重複面、三角形以外の面、ファイル容量を確認します。

検証用の小規模OBJを用意する方法も有効です。平面、凹形状、非平面、開口部、細い三角形など、問題が起こりやすい要素を含むデータを保存します。読み込み環境や変換処理が変わったときの比較に使えます。

アップロード先の変換処理が変わると、以前と同じOBJでも表示結果が変わる可能性があります。重要なデータは、アップロード済みの表示だけでなく、元のOBJと編集データも保管します。

OBJを他の担当者へ渡す場合は、ファイルだけでなく、単位、軸方向、座標基準、原点移動量、取得日、処理内容、対象範囲を共有します。これらが不明では、形状が正常でも正しい位置や縮尺で利用できません。

LRTK Phoneで取得した点群を扱う際の考え方

LRTK Phoneで取得した点群をOBJとして利用する場合も、点として扱うのか、面を持つメッシュへ変換するのかを最初に決めます。

OBJで点を表すには、頂点を定義したうえで点要素として参照する方法があります。ただし、点要素や点群表示への対応は読み込み環境によって異なります。頂点定義だけのOBJが必ず点群として表示されるとは限りません。

面の記述がない点データには、Nゴンや三角形は存在しません。その場合は、三角形化ではなく、点要素の有無、点密度、色属性、座標、不要点、読み込み側の対応を確認します。

一方、点群から地面や構造物の表面を生成した場合は、三角形、四角形、Nゴンを含むメッシュになります。外部環境へアップロードする前に、面の構造を確認します。

現場で取得した点群には、目的の構造物以外の地面、植生、仮設物、作業者、機材などが含まれることがあります。不要な点を残したまま表面を生成すると、離れた点群同士を結ぶ面が作られる可能性があります。

メッシュ化の前に必要範囲を切り出し、明らかな外れ値や不要点を整理します。点が存在しない欠測部を大きな面で埋めないよう、最大辺長や接続条件を用途に合わせて確認します。

複数回の計測結果を結合するときは、重なり部分の位置合わせを確認します。ずれが残っていると、二重表面や細い隙間が生じます。この状態で三角形化しても、位置合わせのずれは解消されません。

点群を閲覧して現場状況を確認することが目的であれば、無理にメッシュ化しない選択もあります。表面形状の把握、断面作成、体積計算、他の3Dデータとの重ね合わせなど、面が必要な用途でメッシュ化を検討します。

メッシュ化したOBJを外部へ渡す場合は、原本の点群を残し、アップロード専用の複製を作ります。その複製に対して、不要面の削除、Nゴンの三角形化、面の向きと法線の確認、容量調整を行います。

取得、点群整理、メッシュ化、三角形化、OBJ書き出し、再読み込み、アップロード確認という工程を分けて保存すれば、問題が発生した段階へ戻りやすくなります。

まず小さな範囲でメッシュ化とアップロードを確認し、代表的な形状で問題がなければ対象範囲を広げます。元データと処理済みデータを明確に分けることで、Nゴンの崩れ、座標ずれ、容量超過、不要面の混入を発見しやすくなります。

まとめ

点群OBJのNゴンが崩れる主な原因は、作成側と読み込み側で三角形への分割方法が異なることに加え、凹形状、非平面、自己交差、重複頂点、誤接続、面の向きや法線の不整合が含まれることです。

対策の基本は、アップロード前に三角形の接続関係を確定することです。互換性を優先する場合はモデル全体を三角形化し、編集性や容量を保ちたい場合は問題のある面だけを部分的に処理します。

面が欠ける場合は、頂点順序から得られる面の向きと、OBJに記録された頂点法線を分けて確認します。法線は無条件に再計算せず、意図した陰影を保持する必要があるかを確認して処理します。

大規模な点群メッシュでは、範囲を分割して段階的に処理すると、負荷を抑えながら問題区画を特定しやすくなります。共通原点と境界座標を管理し、区画間の位置関係を保ちます。

三角形化は形状を自動修復する機能ではありません。自己交差、重複面、無効な頂点参照、位置合わせのずれ、巨大座標、欠測部をまたぐ誤接続があれば、別途修正が必要です。

処理後は、書き出したOBJを新しい環境へ読み込み、面の欠落、輪郭、面の向き、頂点法線、縮尺、軸方向、座標を確認します。小規模な検証データでアップロード結果を確認してから本番データへ進みます。

LRTK Phoneで取得した点群を活用するときも、点として扱うのか、メッシュ化するのかを用途に応じて判断します。点データでは点要素と読み込み側の対応を確認し、メッシュ化する場合は原本を残してアップロード用の複製で三角形化と検証を進めます。

Nゴンの状態を確認し、4つの方法を使い分けることで、点群 OBJ アップロード後の面の欠落や変形を防ぎやすくなります。取得から書き出しまでの条件を記録し、再現できる運用へつなげることが大切です。

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

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