LRTKレフィクシア株式会社

点群OBJアップロード前に非多様体形状を直す5つの検査項目

点群OBJと非多様体形状の基本を理解する

点群をもとに作成したOBJファイルをアップロードすると、読み込みが途中で止まる、面の一部が消える、形状の表裏が反転する、断面や体積を正しく計算できないといった問題が起こることがあります。このような不具合の原因として確認したいものの一つが、メッシュに含まれる非多様体形状です。

非多様体形状とは、立体の表面として内側と外側を明確に判断しにくい頂点、エッジ、面の接続状態を指します。一般的な閉じたメッシュでは、一つのエッジを二つの面が共有します。隣り合う二つの面が一つの辺で接続され、立体の表面が連続している状態です。

ところが、一つのエッジに三つ以上の面が接続していたり、二つの立体が一つの頂点だけで接触していたりすると、その部分の内側と外側を一意に定めにくくなります。こうした接続は、閲覧だけなら表示できる場合がある一方、体積計算、断面生成、簡略化、面の再構成などの処理では問題になる可能性があります。

点群OBJを扱うときは、最初にOBJが頂点だけを記録したデータなのか、面を持つメッシュデータなのかを区別する必要があります。OBJ内に頂点を表す情報だけがあり、面を表す情報がなければ、通常の意味で非多様体メッシュは存在しません。頂点同士の接続が定義されていないためです。

一方、点群から三角形や多角形を生成し、面情報を持つOBJとして出力した場合は、非多様体形状の検査が必要になります。点群からメッシュを生成する工程では、点密度の不足、外れ点、遮蔽物、重複計測範囲などの影響を受け、穴、重複面、交差面、不自然な接続が生まれることがあるためです。

また、非多様体形状が含まれているからといって、必ずアップロードに失敗するとは限りません。アップロード先が表示を優先して不正な面を読み飛ばすこともあれば、処理を継続できずエラーにすることもあります。そのため、特定の症状だけで原因を断定せず、元のOBJ、アップロード後の表示、使用したい機能の三つを照合しながら確認することが大切です。

特に実務では、アップロードできたかどうかだけで正常と判断しないことが重要です。全体形状が表示されても、内部面が残っていれば数量計算に影響する可能性があります。法線が反転していれば、見る方向によって面が消える場合があります。小さな穴があれば、断面線が途中で切れることもあります。

点群OBJアップロード前の検査では、形状を完全にきれいにすることだけを目的にするのではなく、利用目的に必要な品質を満たしているかを判断します。地表面のように外周が開いていることが自然なメッシュと、体積計算のために閉じている必要がある立体では、求められる状態が異なります。必要な修正範囲を先に決めることで、過剰な編集による形状変化を避けやすくなります。

検査項目1 境界エッジと意図しない穴を確認する

最初の検査項目は、境界エッジと意図しない穴です。境界エッジとは、一つの面にしか接続されていないエッジを指します。閉じた立体では、それぞれのエッジが原則として二つの面に共有されます。そのため、閉じた形状の途中に境界エッジが存在する場合は、面が欠けて穴になっている可能性があります。

ただし、境界エッジがあること自体が常に異常とは限りません。地表面、道路面、法面、壁面などを一枚の表面として表現している場合、モデルの外周に境界エッジがあるのは自然です。重要なのは、その境界が意図した外周なのか、点群からメッシュを生成したときに偶然できた欠損なのかを区別することです。

境界エッジを検査するときは、本数だけでなく分布を見る必要があります。モデルの外側を連続して囲む境界は、意図した外周である可能性があります。一方、モデルの中央に小さな輪として存在する境界や、本来連続しているはずの壁面や地表面を横切る境界は、意図しない穴の可能性があります。

点群からメッシュを作る場合、点密度が低い場所では面が生成されず、穴が残ることがあります。水面、光沢のある面、暗い部分、細い部材の周辺、遮蔽物の背後などは、点が不足しやすい場所です。また、複数の計測範囲を結合した境界でも、点の位置がそろわず細い隙間が生じることがあります。

小さな穴は、通常の陰影表示では見つけにくい場合があります。背景と同じ色に見えたり、周囲の面によって隠れたりするためです。エッジを表示し、境界だけを選択できる検査機能を利用すると、穴の位置を確認しやすくなります。形状を回転させ、表側と裏側の両方から見ることも有効です。

穴を見つけたら、すぐに自動処理で閉じるのではなく、元の点群に形状情報があるかを確認します。元の点群に十分な点があるのに面だけが欠けている場合は、周辺の面を作り直すことで自然な形状を復元できる可能性があります。元の点群にも情報がない場合は、穴を閉じる処理が推定形状の追加になるため、利用目的に応じた判断が必要です。

小さな穴を修正する場合は、境界を構成する頂点の並びを整えてから面を張ります。境界に重複頂点や極端に近い頂点が残っていると、細長い三角形や面積のほとんどない面が生成されることがあります。穴を閉じた直後は自然に見えても、後の簡略化や法線計算で問題になる可能性があります。

大きな穴に対して単純な平面を張ると、実際の凹凸が失われることがあります。地形、法面、構造物の曲面などでは、周囲の面の流れや元の点群を参照しながら、複数の面で段階的に補う方が形状を保ちやすくなります。推定で補った範囲が数量計算に使われる場合は、実測部分と区別できるように管理することも重要です。

境界エッジの修正後は、穴が閉じたことだけでなく、追加した面が周辺と適切に接続されているかを確認します。エッジを三つ以上の面が共有していないか、面が重複していないか、法線が反転していないかを再検査します。穴を閉じる操作によって別の非多様体形状が生まれることがあるためです。

体積計算を行う場合は、対象メッシュが閉じた形状になっているかを特に慎重に確認します。地表面だけでは体積を定義できず、底面や側面などの基準面が必要になる場合があります。単に外周を閉じればよいとは限らないため、計算方法に合った閉じ方を選ぶことが必要です。

一方、閲覧や高さ確認だけを目的とする地表面では、外周を無理に閉じる必要はありません。外周に垂直面や底面を追加すると、本来存在しない形状がモデルに含まれます。境界エッジはゼロにすればよいという考え方ではなく、用途に対して意図した境界だけが残っている状態を目指します。

検査項目2 三つ以上の面が集まるエッジを確認する

二つ目の検査項目は、一つのエッジに三つ以上の面が接続していないかという点です。一般的な閉じたメッシュでは、一つのエッジを二つの面が共有します。三つ以上の面が同じエッジを共有すると、その周囲で表面の内側と外側を一意に決めにくくなり、代表的な非多様体エッジになります。

この状態は、複数のメッシュを結合したときに発生しやすい問題です。たとえば、同じ場所を表す二つの表面を重ねたまま接続すると、本来二つであるべき共有面数が増えることがあります。また、外側の面に加えて内部面が残っている場合も、一つのエッジに三つ以上の面が集まる原因になります。

点群を複数回に分けて計測し、それぞれからメッシュを生成した後に統合すると、重複範囲に二重の面が生じることがあります。見た目では一つの表面に見えても、データ上ではわずかな距離で二枚の面が重なっている場合があります。その境界を無理に一つの頂点列へ統合すると、非多様体エッジが生まれることがあります。

非多様体エッジを検出した場合は、接続している面を一枚ずつ確認します。単にエッジを分離するだけでは、面同士の接続が切れて新たな穴ができます。どの面が外側の表面として必要なのか、どの面が重複または内部の不要面なのかを判断したうえで修正する必要があります。

構造物同士の接触部分でも注意が必要です。二つの閉じた立体が一つの辺だけを共有している形状は、実際の配置としては成立しているように見えても、一体のメッシュとしては非多様体になる場合があります。この場合は、二つの立体を交差部分まで含めて一体化するか、別々の形状として分離する方法を検討します。

一体化する場合は、単に頂点を統合するのではなく、重なっている内部面を削除し、外側の表面が連続するように再構成します。別々の形状として管理する場合は、それぞれが独立したメッシュとして正常かを確認します。同じ座標に頂点が存在しても、接続関係を持たない別形状として扱う方法があります。

エッジだけでなく、頂点の接続状態も確認します。二つの面群が一つの頂点だけを共有していると、エッジの共有数だけでは問題が見つからないことがあります。一つの頂点を中心に複数の面群が分断されている状態は、非多様体頂点として扱われる可能性があります。

たとえば、二つの閉じた立体が角だけで接触している形状では、接触点の周囲に独立した面のまとまりが複数存在します。この状態を修正するには、形状を一体として再構成するか、共有している頂点を分離して別々の頂点として扱います。

頂点を分離すると、見た目の位置は変えずに接続関係だけを切り離せます。ただし、後の処理で近接頂点の自動統合を行うと、再び同じ問題が生じる可能性があります。修正後に近接頂点を統合する場合は、統合距離と対象範囲を慎重に設定します。

三つ以上の面が集まるエッジを修正した後は、境界エッジを再度確認します。不要面を削除したことで穴が生じていないか、必要な面まで除去していないかを確認するためです。また、接続を作り直した場所に極端に小さい面や重複面ができていないかも点検します。

自動修正機能を使う場合でも、どの面が削除または分離されたかを確認することが重要です。複雑な構造物では、自動処理が意図した外形を判断できないことがあります。重要な範囲では、元の点群や既知の構造を参照しながら手動で確認する方が安全です。

検査項目3 重複頂点と無効な面を確認する

三つ目の検査項目は、重複頂点、重複面、面積のない面などの無効な要素です。これらのすべてが厳密な意味で非多様体形状に該当するわけではありませんが、エッジの接続判定、法線計算、自己交差の検出、アップロード処理を不安定にする原因になります。

重複頂点とは、同じ位置または極めて近い位置に複数の頂点が存在する状態です。画面上では一つの点に見えても、別々の頂点番号を持つため、面同士が接続されていない場合があります。その結果、本来連続しているはずの面の境界が切れ、細い隙間や多数の境界エッジとして検出されます。

重複頂点は、複数のメッシュを結合したときや、編集と書き出しを繰り返したときに残りやすくなります。点群から部分ごとにメッシュを生成し、同じ位置にある境界を重ねただけの場合も、見た目ではつながっていてもデータ上は分離しています。

近接頂点を統合するときは、許容距離の設定が重要です。設定値が小さすぎると、本来同じ位置である頂点を統合できません。反対に大きすぎると、段差、溝、薄い部材、近接する別形状などが一つにまとめられ、形状が変わる可能性があります。

統合距離は、モデルの単位、点間隔、必要な形状精度を考慮して決めます。最初から大きな値を使用せず、小さな値で処理した結果を確認しながら調整する方法が安全です。処理前後の頂点数を比較し、想定以上に減少していないかも確認します。

座標値の桁が大きいデータでは、数値精度の影響にも注意が必要です。大きな座標を持つモデルを編集環境で扱うと、非常に小さな距離の差を正確に表現しにくくなる場合があります。作業用にモデルを原点付近へ移す方法もありますが、移動量を正確に記録し、最終的に必要な座標へ戻す管理が欠かせません。

重複面は、同じ場所に同じ形状の面が複数存在する状態です。同じ向きの面が重なっている場合もあれば、表と裏が反対向きの面が重なっている場合もあります。後者は表示時のちらつきや、見る方向による消失を起こす可能性があります。

同じ頂点番号で構成された面だけを探しても、すべての重複面を検出できるとは限りません。重複頂点が残っていると、異なる頂点番号を使いながら同じ位置に面が存在するためです。そのため、先に重複頂点を整理し、その後で重複面を検出する順序が適しています。

面積のない面も削除対象になります。三角形を構成する三つの頂点が一直線上に並んでいる場合、面積はゼロまたは極めて小さくなります。同じ頂点を複数回参照している面も、正常な三角形を構成できません。これらの面は画面にほとんど表示されなくても、面情報として残り続けます。

極端に細長い三角形にも注意が必要です。面積がゼロではなくても、長い辺に対して高さが非常に小さい面は、交差判定や法線計算で数値誤差の影響を受けやすくなります。点群の外れ点と遠方の点が誤って結ばれた場合に、このような面が生成されることがあります。

細長い面を見つけたら、単純にすべて削除するのではなく、元の点群との位置関係を確認します。細い部材や鋭い稜線を表している場合は、必要な面である可能性があります。点が存在しない空間を横切っている面や、周囲から大きく突出している面は、誤生成された可能性が高いと考えられます。

重複頂点や無効面を整理した後は、頂点数、面数、座標範囲を記録します。大幅な変化があった場合は、必要な細部や独立形状まで削除されていないかを確認します。修正前のOBJを残し、同じ視点や断面で比較できるようにしておくと、意図しない変化を見つけやすくなります。

検査項目4 自己交差と内部面を確認する

四つ目の検査項目は、自己交差と内部面です。自己交差とは、同じメッシュに含まれる面同士が、共通のエッジを持たないまま空間上で交差している状態です。形状の表面が自分自身を突き抜けるため、どこが内部でどこが外部なのかを判断しにくくなります。

点群からメッシュを生成する場合、近接する別の面が誤って接続されることで自己交差が発生することがあります。薄い板状の構造物、フェンス、手すり、配管、枝葉、資材の隙間などでは、表側と裏側の点が一つの面で結ばれやすくなります。

地表面でも、急な段差や垂直に近い法面の周辺で不自然な接続が生じることがあります。上側の点と下側の点を結んだ面が、別の地表面を横切るように生成されると、自己交差になります。上面から見るだけでは分からなくても、側面や断面で確認すると交差が見つかる場合があります。

自己交差は、通常の陰影表示では発見しにくい問題です。外側から見える面が自然であれば、内部で交差していても気づけないためです。半透明表示、断面表示、裏面表示、エッジ表示などを組み合わせ、モデルの内部まで確認します。

交差している面を発見したら、どちらの面が元の形状を正しく表しているかを判断します。元の点群を重ねられる場合は、点の分布に沿っている面を残し、点が存在しない場所を横切る面を修正します。元の点群を参照できない場合は、周囲の面の流れや対象物の構造から判断しますが、推測による変更範囲は最小限に抑えることが重要です。

単純に交差面を削除すると穴が生じることがあります。その場合は、不要な面を取り除いた後、周囲の境界を整えて必要な面を再構成します。交差部分を切り分ける処理では、小さな面や細長い面が大量に生成されることがあるため、処理後に無効面の検査も行います。

内部面とは、閉じた外形の内部に残っている不要な表面です。二つ以上の立体を重ねて結合したときに、接触部分の面を削除せず残すと発生します。外側からは見えなくても、断面表示では内部に余分な線として現れる場合があります。

内部面が残っていると、体積や面積の計算結果に影響する可能性があります。処理方法によっては内部面を外形の一部として解釈したり、閉じた領域を複数に分けたりするためです。表示できているから問題がないと判断せず、数量計算を行うデータでは内部を確認する必要があります。

複数の計測範囲から作成した地表面を重ねる場合も、二重の面に注意します。完全に同じ位置ではなく、数値上わずかに離れた二枚の面が存在すると、画面上でちらつきや縞状の表示が起こることがあります。これは面が互いに近すぎるため、どちらを表示するかが不安定になる状態です。

重複範囲を整理するときは、精度や点密度を比較して採用する面を決めます。境界を切りそろえ、重なりを解消してから接続すると、二重面や非多様体エッジを防ぎやすくなります。両方の面を残したまま境界頂点だけを統合すると、一つのエッジに三つ以上の面が集まる可能性があります。

自己交差と内部面を修正した後は、外側の形状が変わっていないかを確認します。特に複雑な交差部分では、必要な面まで削除されたり、表面が内側へへこんだりすることがあります。元の点群、修正前のOBJ、既知寸法などを使って比較します。

さらに、境界エッジ、重複面、無効面を再検査します。自己交差の解消は、面を分割したり削除したりするため、別の問題を新たに作る可能性があります。一回の自動検査で終了せず、修正と再検査を繰り返すことが重要です。

検査項目5 法線方向と孤立形状を確認する

五つ目の検査項目は、法線方向と孤立形状です。法線の不整合は、必ずしも非多様体形状そのものではありません。しかし、面の接続異常、表裏の反転、重複面などを見つけるうえで重要な手掛かりになります。

メッシュの面には表側と裏側があります。OBJでは、面を構成する頂点の記述順序によって向きが決まります。隣り合う面の頂点順序がそろっていないと、一部の面だけが反対方向を向きます。

アップロード先が裏面を表示しない処理を採用している場合、反転した面は穴のように見えることがあります。編集環境では両面が表示されていて問題に気づかず、アップロード後に初めて欠落として表れることもあります。

法線を確認するときは、モデルを単色で表示し、表側と裏側を区別できる表示を使うと分かりやすくなります。面の向きを線で表示できる場合は、周辺と反対方向を向く面を探します。陰影が急に変わる場所や、見る方向によって消える場所も確認対象です。

閉じた立体では、法線を外向きにそろえることが基本です。ただし、非多様体エッジ、穴、自己交差が残った状態では、内側と外側を正しく判定できない場合があります。そのため、法線の一括再計算は、他の形状問題を修正した後に行う方が安全です。

地表面のように開いたメッシュでは、外側という概念が一意に決まらない場合があります。その場合は、上向き、観察方向、計測処理で必要な方向などを基準にそろえます。地表面の一部だけが下向きになっていると、上方から見た際に面が消えたり、陰影が不自然になったりする可能性があります。

孤立形状とは、主なメッシュから分離して存在する小さな面のまとまりや頂点です。一つのOBJに複数の独立した形状が含まれること自体は問題ではありません。複数の構造物を別々の閉じた立体として持つことも可能です。

確認すべきなのは、意図しない小片、外れ点から生成された面、編集時に残った不要形状です。主形状から遠く離れた場所に小さな面や頂点があると、アップロード後の表示範囲が広がり、必要な形状が極端に小さく表示されることがあります。

点群の外れ点が遠方に存在し、その点を含めて面が生成されている場合は、非常に長い三角形が主形状から伸びることもあります。全体表示では見落としやすいため、座標範囲や形状全体の寸法が想定どおりかを確認します。

孤立形状を検査するときは、接続している面のまとまりごとに分け、位置、寸法、面数を確認します。面数が少ないからといって自動的に不要とは判断できません。小さな部材、縁石、ボルト、配管、薄い板など、必要な形状が独立している場合もあるためです。

削除の判断には、元の点群や対象範囲との照合が必要です。点群上に対応する点がなく、主形状から不自然に離れている小片であれば、不要な可能性があります。対応する点が存在する場合は、必要な地物として残すか、別のOBJへ分けて管理することを検討します。

面に使用されていない孤立頂点も確認します。OBJに不要な頂点が大量に残っていると、ファイル容量が増えます。また、アップロード先がすべての頂点から表示範囲を計算する場合、遠方の孤立頂点が表示に影響する可能性があります。

法線と孤立形状を整理した後は、表側だけを表示した状態、両面を表示した状態、エッジを表示した状態で比較します。さらに、全体表示と拡大表示を切り替え、面の欠落や不要形状がないかを確認します。

非多様体形状を安全に修正する順序

非多様体形状の修正では、問題を見つけた順に無作為に処理するより、形状への影響を確認しやすい順序で進める方が安全です。最初に行うべきことは、元の点群とOBJを複製し、修正前のデータを保存することです。

元データを直接上書きすると、必要な面を削除した場合や、頂点統合によって形状が変わった場合に戻せません。修正段階ごとに別ファイルを保存すると、どの処理で問題が生じたかを比較しやすくなります。

作業開始前には、OBJの頂点数、面数、座標範囲、全体寸法、分離形状の数などを記録します。これらは、修正後に意図しない削除や座標変化がないかを確認する基準になります。既知の二点間距離や構造物寸法も確認基準として有効です。

最初の処理では、主形状から明らかに離れた外れ形状や、面に使用されていない頂点を確認します。不要と判断できる要素を整理すると、その後の検査対象を減らせます。ただし、位置だけで判断せず、元の点群と照合してから削除します。

次に、同じ位置または非常に近い位置にある重複頂点を整理します。重複頂点が残っていると、本来接続している面が分離した状態になり、境界エッジの検出結果が増えるためです。統合距離は小さく設定し、細部がつぶれていないかを確認します。

重複頂点の整理後は、面積のない面、同じ位置にある重複面、極端に細長い面を確認します。無効な面を先に減らすことで、非多様体エッジや自己交差の検査結果を整理しやすくなります。

その後、一つのエッジに三つ以上の面が接続している場所と、一つの頂点だけで面群が接触している場所を修正します。不要面の削除、形状の分離、外形の再構成などから、用途に合う方法を選びます。

次に、自己交差と内部面を処理します。交差部分を修正した後は、生成された小さな面や新しい境界を確認します。内部面を削除した場合は、外形に穴が生じていないかを点検します。

意図しない穴を閉じる処理は、重複面や内部面を整理した後に行います。先に穴を閉じると、内部面の削除後に再び穴が発生したり、閉じた面が別の面と重複したりする可能性があります。

最後に、法線方向をそろえます。閉じた立体では外向き、開いた地表面では用途に合った方向へそろえます。法線を再計算した後は、裏面を表示しない状態でも面が欠けないかを確認します。

一連の修正が終わったら、最初から五つの検査項目を再実行します。一つの問題を修正する操作が、別の非多様体形状を作る場合があるためです。検査結果が減ったことだけでなく、必要な形状が維持されていることを確認します。

自動修正機能を利用する場合は、処理前後の差を確認できる状態で実行します。すべてを一括で修正すると、どの要素が変更されたか把握しにくくなります。重要なモデルでは、問題の種類ごとに処理を分け、保存と確認を繰り返す方法が適しています。

OBJ書き出し前に確認するデータ条件

メッシュの非多様体形状を修正しても、OBJの書き出し条件が合っていなければ、アップロード時に別の問題が生じる可能性があります。形状検査とあわせて、座標、単位、面形式、属性情報などを確認する必要があります。

最初に確認するのは、モデルの単位と縮尺です。作業環境では正しい大きさに見えても、書き出し時の単位変換によって、想定より大きいまたは小さいOBJになる場合があります。元の点群、編集時のメッシュ、アップロード先で想定する単位をそろえます。

単位変換を行う場合は、倍率だけでなく、既知寸法を使って確認します。二点間の距離、構造物の幅、高さなどを測り、書き出し後も同じ値になっているかを検証します。

座標原点も重要です。測量座標のように大きな座標値を持つOBJは、処理環境によって表示や計算の精度に影響する場合があります。一方、原点付近へ移動すると、他の測量データとの位置関係が失われる可能性があります。

作業用に座標を移動した場合は、移動量を記録し、最終出力で元の座標へ戻すか、アップロード後に正しく配置できる情報を管理します。修正版と原点移動版を取り違えないよう、ファイル名だけでなく座標範囲も確認します。

OBJの面形式も確認します。OBJは三角形だけでなく、四つ以上の頂点を持つ面を記録できます。しかし、アップロード先で内部的に三角形へ分割される場合、分割方法によって表示結果が変わる可能性があります。

特に、ねじれた四角形や凹形状の多角形は、処理環境によって異なる三角形化が行われることがあります。結果を管理しやすくするためには、書き出し前に意図した形で三角形化し、三角形化後の形状を検査します。

三角形化によって新しいエッジや面が生成されるため、処理後に非多様体エッジ、重複面、細長い面がないかを再確認します。穴の周辺や複雑な凹凸では、極端に細い三角形ができやすいため注意が必要です。

法線情報を出力する場合は、修正後の面方向と一致していることを確認します。面を編集した後に古い法線が残っていると、面の向きと法線情報が一致しない場合があります。必要に応じて法線を再計算してから書き出します。

材質や画像参照などの付属情報を含める場合は、OBJ本体との対応関係も確認します。ただし、読み込み不具合の原因を切り分けるときは、最初に形状だけのOBJで試す方法が有効です。形状だけならアップロードできる場合は、付属情報や参照関係を別に検査できます。

ファイル名、オブジェクト名、グループ名には、処理環境で扱いやすい文字を使用します。特殊な記号や制御文字、過度に長い名称は避けます。複数の形状を含める場合は、アップロード後に識別しやすい名称へ整理します。

書き出したOBJは、そのままアップロードする前に再度読み込みます。編集画面で正常に見えていても、書き出し処理で頂点番号、法線、面形式などが変化する可能性があるためです。

再読み込み後は、頂点数、面数、座標範囲、全体寸法、境界エッジ、非多様体エッジ、自己交差、法線方向を確認します。書き出し前後で大きな差がなければ、アップロード前の形状確認を完了しやすくなります。

点群OBJアップロード後に行う最終確認

OBJをアップロードできた場合でも、正常に利用できるかを確認するまでは検査を終えないことが重要です。アップロード先で独自の変換、簡略化、不正面の除外などが行われる場合があり、元のOBJと表示結果が完全に一致するとは限りません。

最初に、形状の位置と大きさを確認します。主形状が想定した場所にあり、既知寸法と一致しているかを確認します。極端に小さく表示される場合は、遠方の孤立頂点や面によって表示範囲が広がっている可能性があります。

形状が見つからない場合は、座標原点、単位、表示範囲を確認します。大きな座標値を持つOBJが別の位置に配置されていることもあれば、単位の違いによって非常に小さくなっている場合もあります。

次に、上面、側面、下面、斜め方向から形状を確認します。一方向から正常に見えても、反対側からは面が消えることがあります。これは法線反転や裏面非表示の影響である可能性があります。

面が欠けている場合は、元のOBJに面が存在するか、アップロード時に除外されたかを切り分けます。編集環境で書き出し後のOBJを再読み込みし、同じ箇所を確認します。元のOBJでも欠けていれば形状修正が必要であり、アップロード後だけ欠ける場合は面形式や処理条件を確認します。

断面表示を利用できる場合は、モデル内部も確認します。断面に不要な線が現れる場合は、内部面や重複面が残っている可能性があります。断面線が途中で切れる場合は、小さな穴や境界エッジを疑います。

頂点数や面数を確認できる場合は、書き出し後のOBJと比較します。アップロード時に自動簡略化が行われると面数が減る可能性があります。減少が大きい場合は、小さな部材や重要な凹凸が失われていないかを確認します。

面積、距離、体積などを利用する場合は、既知の形状や限定した範囲で試算します。全体の数値だけを見ると誤差の原因を見つけにくいため、寸法が分かっている部分で測定し、元データと比較します。

体積を計算できない場合は、形状が閉じていない、法線がそろっていない、自己交差や内部面が残っているといった原因が考えられます。計算値が想定より大きい場合は、二重面や複数の閉じた領域を確認します。

修正版を繰り返しアップロードする際は、旧データとの取り違えにも注意します。同じファイル名を使用すると、どの版が表示されているか分かりにくくなる場合があります。修正段階が分かる名称を使用し、更新日時、頂点数、面数を記録します。

最終確認では、単に表示できることだけでなく、実務で予定している処理を一通り試します。閲覧、距離計測、断面作成、数量確認、他データとの重ね合わせなど、必要な操作が問題なく行えることを確認してから共有します。

現場関係者へデータを渡す場合は、座標、単位、修正内容、推定で補った範囲なども整理しておくと、利用時の誤解を防ぎやすくなります。形状が見た目に自然でも、実測点が存在しない範囲を補間している場合は、その点を明確にすることが重要です。

まとめ

点群OBJアップロード前に非多様体形状を確認することは、読み込みエラーを防ぐだけでなく、面の表示、断面作成、面積や体積の計算を安定させるために重要です。

最初に、対象のOBJが頂点だけの点群データなのか、面情報を持つメッシュデータなのかを確認します。面を持たないOBJでは、非多様体形状ではなく、座標、頂点数、ファイル形式など別の原因を調べます。

面を持つOBJでは、境界エッジと意図しない穴、三つ以上の面が集まるエッジ、重複頂点と無効面、自己交差と内部面、法線方向と孤立形状という五つの項目を順に検査します。

これらの問題は互いに関係しています。重複頂点を統合すると新しい接続が生まれ、内部面を削除すると穴が開き、穴を閉じると細長い面が作られることがあります。そのため、一度の検査で終了せず、修正後に五項目を再確認することが大切です。

修正作業では元データを上書きせず、頂点数、面数、座標範囲、既知寸法を記録します。自動修正を利用する場合も、処理前後を比較し、必要な形状が失われていないことを確認します。

OBJを書き出した後は、再読み込みによって形状を検証し、アップロード後にも位置、縮尺、面の欠落、断面、数量を確認します。アップロードに成功したことと、業務に正しく利用できることは同じではありません。予定している後工程まで試して、データの完成を判断する必要があります。

点群OBJの品質を安定させるには、メッシュの修正だけでなく、点群を取得する段階で欠損や外れ点を減らすことも重要です。現場計測から点群作成、OBJ出力、アップロードまでの流れを見直す際は、LRTK Phoneを活用した計測方法も確認し、必要な範囲を効率よく取得できる運用へつなげていくことが大切です。

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

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