点群や三次元モデルをOBJ形式でアップロードしたあと、視点を動かすたびに表面が細かく点滅したり、異なる色や陰影が交互に表示されたりすることがあります。静止した状態では問題が目立たないのに、回転や拡大をすると急にちらつき始める場合、重なり面による表示競合が起きている可能性があります。
この現象は、ほぼ同じ位置に二枚以上の面が存在し、表示処理がどちらを手前に描くべきか安定して判断できないことで発生します。一般に深度競合と呼ばれる状態であり、元の点群から面を生成した工程、複数データを結合した工程、OBJを書き出した工程、アップロード先で座標や形状を変換した工程など、さまざまな段階で生じます。
ただし、画面上のちらつきがすべて重なり面によるものとは限りません。法線の不整合、極端に細長い面、離れた座標原点、透過設定、近接する別部材などでも似た見え方になります。そのため、いきなり面を削除するのではなく、再現条件を整理し、対象範囲を絞り、形状情報を確認したうえで修正することが重要です。
この記事では、「点群 OBJ アップロード」で検索している実務担当者に向けて、ちらつきの原因を切り分け、重なり面を安全に特定するための5つの検出手順を解説します。修正方法だけでなく、再アップロード後の確認方法や、同じ問題を繰り返さないためのデータ作成上の注意点も紹介します。
点群OBJで重なり面によるちらつきが起きる仕組み
OBJは、頂点の位置、面を構成する頂点の組み合わせ、法線、テクスチャ座標などを記録できる三次元データ形式です。点群をそのままOBJへ変換する場合もありますが、実務では点群から三角形の面を生成し、連続した表面モデルとして書き出すケースが多く見られます。
この表面モデルの同じ位置、または極めて近い位置に複数の面が存在すると、表示側は画面から見てどちらの面が手前にあるかを深度情報によって判定します。しかし、二つの面の奥行き差が表示処理の識別限界より小さいと、視点や倍率の変化によって判定結果が入れ替わります。その結果、一方の面ともう一方の面が交互に描かれ、ちらついて見えます。
完全に同一座標の面だけが原因になるわけではありません。数値上はわずかに離れていても、モデル全体の座標値が大きい場合、表示距離が長い場合、近くを表示する範囲と遠くを表示する範囲の差が大きい場合には、奥行きの差を十分に区別できないことがあります。そのため、目視では同じ位置に見える面だけでなく、極めて近接した平行面も調査対象に含める必要があります。
点群から作成したOBJで重なり面が発生しやすい代表的な場面は、複数回取得した点群を別々に面化してから結合した場合です。たとえば、同じ床面や壁面を異なる位置から取得し、それぞれを独立して表面化すると、共通範囲に二重の面が作られることがあります。点群の段階では単に点の密度が高いだけに見えても、面を生成したあとには別々の表面として残るため、表示時の競合につながります。
既存のOBJへ修正版を追加した場合にも注意が必要です。元の面を削除せずに修正後の面だけを重ねると、見た目上は一枚の面でも、内部には旧形状と新形状が同時に存在します。アップロード前の作業画面では問題が目立たなくても、表示方式が変わったアップロード先ではちらつきが顕在化することがあります。
また、同じ頂点を共有している正常な隣接面と、重複面を区別しなければなりません。三角形の面で構成されたモデルでは、一つの辺を二枚の面が共有すること自体は正常です。問題になるのは、同じ三頂点を使った面が複数登録されている場合や、ほぼ同じ位置に別の頂点群と別の面が形成されている場合です。
重なり面によるちらつきは、テクスチャや色が異なる場合ほど見つけやすくなります。一方の面が明るく、もう一方が暗いと、視点移動に合わせて色が激しく切り替わります。二枚の面が同じ色の場合は、陰影の細かな揺れや輪郭のざらつきとして現れるため、単なる表示品質の問題と誤認しやすくなります。
正しく検出するには、画面上の見え方だけで判断せず、どの条件で再現するか、どの部材に含まれているか、内部の面構造がどうなっているかを順番に確認することが重要です。
手順1 表示条件を固定してちらつく範囲を特定する
最初の手順は、ちらつきが発生する表示条件を固定し、調査対象となる範囲をできるだけ狭くすることです。モデル全体を表示したまま修正を始めると、正常な面まで削除したり、別の原因による表示異常を重なり面と判断したりするおそれがあります。
まず、ちらつきが発生する視点を記録します。正面、側面、上面、斜め方向など、どの方向から見たときに現れるかを確認します。可能であれば、カメラ位置、注視点、表示倍率、透視表示か平行表示かといった条件もそろえます。アップロード先に表示位置を保存する機能がない場合は、画面の記録と周辺形状の位置関係を残しておくと再確認しやすくなります。
次に、拡大率を変えて症状を観察します。近づくとちらつきが弱まり、離れると強くなる場合は、深度情報の精度が関係している可能性があります。逆に、極端に近づいたときだけ面が入れ替わる場合は、二枚の面の間隔が非常に小さいか、面同士が部分的に交差している可能性があります。
視点を左右に少しずつ動かしたとき、ちらつく模様が面全体に広がるか、一部だけに残るかも確認します。面全体で均一に発生する場合は、ほぼ同じ形状の面が二重に存在している可能性が高くなります。細い帯状や斑点状に発生する場合は、二枚の面がわずかに傾いて交差しているか、点群から生成された表面に局所的な凹凸が残っていることが考えられます。
ちらつく範囲の境界にも注目します。建物の一室全体、地面の一区画、壁の一面など、明確な区切りで症状が止まる場合、その範囲が別データとして追加された可能性があります。測定日、取得区画、作業者、変換条件などの違いが境界と一致していないか確認すると、重複元を見つけやすくなります。
色表示、テクスチャ表示、陰影のみの表示など、表示方法を切り替えられる場合は、それぞれで症状を比較します。テクスチャを外してもちらつく場合は、形状そのものの競合が疑われます。テクスチャを表示したときだけ目立つ場合でも、同じ位置に異なるテクスチャ座標を持つ面が重なっている可能性があるため、単なる画像の乱れとは決めつけられません。
透過表示が設定されている場合は、一時的に不透明へ戻します。半透明の面は描画順序によって見え方が変わりやすく、重なり面による症状との区別が難しくなります。不透明な状態でも同じ場所がちらつくかを確認することで、原因を切り分けられます。
また、画面上でちらついている位置が、実際のモデル座標ではどの範囲にあるかを控えます。中心座標や周囲の特徴点を記録しておけば、元データを編集する際に対象面を探しやすくなります。広い点群モデルでは、表示上の場所だけを頼りに面を探すと時間がかかるため、位置情報を残すことが特に重要です。
この段階では、面の削除や結合を行わず、再現条件と対象範囲の特定に集中します。ちらつきの発生範囲が変化するか、特定の表示方式だけで起きるかを整理することで、次の手順で調べるべきデータを大幅に減らせます。
手順2 部材や面のまとまりを分離して重複元を絞り込む
対象範囲を特定したら、次はOBJ内の部材、面グループ、素材区分、連結した形状などを利用して、どのまとまり同士が重なっているかを調べます。重複面は、同じ一つのまとまりの内部に存在する場合と、異なるまとまり同士が重なっている場合があります。
OBJには、面を用途ごとのまとまりとして記録できる場合があります。変換元で床、壁、設備、地形などを分けていた場合、その区分が残っていれば、一つずつ表示と非表示を切り替えます。あるまとまりを非表示にした瞬間にちらつきが消える場合、そのまとまりが重複する面の一方を含んでいると判断できます。
一つのまとまりを非表示にしても症状が残る場合は、同じまとまりの内部に重複面が含まれている可能性があります。点群から一括で面を生成したデータや、結合時にすべての面を同じ区分へまとめたデータでは、この状態になりやすくなります。
素材情報が分かれている場合は、素材単位の切り分けも有効です。同じ壁面に異なる素材が割り当てられた二枚の面が存在すると、表示時に色や模様が激しく切り替わります。一方の素材を一時的に単色へ変更することで、どちらの面がどの範囲に存在するかを確認しやすくなります。
部材区分が残っていない場合は、面同士の接続関係を使って分離します。頂点や辺を共有して連続している面を一つのまとまりとして扱い、独立した形状ごとに表示します。見た目では一枚の床に見えていても、実際には同じ場所に二つの独立した床面が存在し、それぞれが別の頂点番号を持っていることがあります。
重複した面が完全に同じ位置にある場合、一方を選択するともう一方が隠れて見えないことがあります。そのため、選択した面を一時的に別の位置へ移動し、下に同じ形状が残るか確認する方法が有効です。ただし、元データを直接変更すると復元が難しくなるため、必ず複製した検証用データで行います。
面をわずかに動かしたあと、下に同じ輪郭の面が現れれば、二重登録されている可能性が高いと判断できます。下に面がなく、周囲に穴が開いた場合は、その面が単独で存在していた可能性があります。確認後は移動を元に戻し、削除対象を決定するまでは形状を確定しないことが安全です。
複数時期の点群や複数区画のデータを統合している場合は、元となったデータ単位で表示を切り替えます。たとえば、一回目の取得範囲と二回目の取得範囲が同じ壁面を含んでいれば、その重複範囲に別々の面が生成されている可能性があります。どちらか一方を非表示にしたときに症状が消えるなら、重なりの組み合わせを特定できます。
ただし、重複している二つのデータのうち、片方をそのまま削除してよいとは限りません。一方には壁面がきれいに記録され、もう一方には開口部や設備周辺が詳しく記録されていることがあります。削除の判断は、重複している範囲だけを比較し、欠損、密度、面の乱れ、位置精度などを確認したうえで行う必要があります。
部材やまとまりを分離できない場合は、対象範囲を座標で切り出し、小さなOBJとして保存します。モデル全体を対象に重複検出を実行するよりも、ちらつく部分だけを切り出したほうが、処理負荷を抑えながら詳細に確認できます。切り出し範囲には、症状が見える部分だけでなく、周囲の正常な面も少し含めます。境界付近の接続状態を確認できるため、修正後に穴や段差が生じるリスクを減らせます。
手順3 ワイヤー表示と裏面表示で重なり方を確認する
三つ目の手順では、面の輪郭を表示するワイヤー表示や、面の表裏を区別する表示を使い、重なり方を視覚的に確認します。通常の陰影表示だけでは、二枚の面が同じ場所に存在していても一枚にしか見えません。面の辺や向きを表示することで、内部構造の違いを見つけやすくなります。
ワイヤー表示へ切り替えたら、ちらついていた範囲の三角形の並びを観察します。重複している二枚の面が異なる分割方法で作られている場合、同じ表面に複数の対角線や不規則な辺が重なって見えます。線が密集している部分や、同じ輪郭の内側に異なる三角形分割が混在する部分は、重複の可能性があります。
完全に同じ頂点と同じ面構成を持つ重複面では、ワイヤーも完全に重なるため、線の本数だけで判断できないことがあります。その場合は、面を選択して選択数を確認する、選択した面を一時的に非表示にする、表面から少し離して表示するといった追加確認が必要です。
点群から生成されたOBJでは、同じ平面でも三角形の細かさが異なる二つの面が重なっている場合があります。一方は大きな三角形で構成され、もう一方は多数の小さな三角形で構成されている状態です。この場合、通常表示では陰影が揺れて見え、ワイヤー表示では線の密度が局所的に高くなります。
裏面表示では、面の向きを確認します。三次元モデルの面には表と裏があり、頂点の並び順や法線によって向きが決まります。同じ位置に、表向きの面と裏向きの面が重なっている場合、表示設定によって片方だけが見えたり、両方が競合したりします。
視点を面の反対側へ移動し、同じ面がどのように表示されるかを確認します。片側からは正常に見え、反対側からは消える場合、それ自体は一方向の面として正常な挙動である可能性があります。一方、同じ場所に反対向きの面が二枚存在すると、両側から面が見えるものの、陰影や色が不安定になることがあります。
法線の向きを色分けできる場合は、ちらつく範囲だけ向きが混在していないか確認します。表向きと裏向きが細かく入り交じっている場合は、単純な重複だけでなく、点群からの面生成時に面の向きが不統一になった可能性があります。この状態では、重複面を削除しても黒い斑点や陰影の乱れが残ることがあります。
法線の線を表示できる場合は、面から伸びる方向を確認します。同じ位置から反対方向へ法線が伸びていれば、互いに逆向きの面が重なっている可能性があります。ただし、頂点法線と面法線が別々に設定されている場合は、表示される陰影と面の実際の向きが一致しないことがあるため、法線だけで削除対象を決めないようにします。
断面表示を利用できる場合は、ちらつく面を横切るように切断します。完全に重なっている面は一本に見えることがありますが、わずかに離れた平行面であれば、断面上で二本の線として確認できます。床面、壁面、法面など、広い平面が近接している場合には特に有効です。
断面の位置を少しずつ移動し、二枚の面の間隔が一定かどうかも確認します。一定の間隔で平行に続いている場合は、仕上げ面と構造面など、意図的に別の面として作成された可能性があります。途中で交差したり、間隔がゼロに近づいたりする場合は、異なる点群から生成された面が重なっている可能性が高くなります。
意図的な二重面と不要な重複面を区別することは重要です。壁の表面と裏面、舗装面と地盤面、設備の外装と内部面など、近接した二枚の面が必要なこともあります。ちらつきが起きているからといって、一律に片方を削除するのではなく、設計上または計測上の意味を確認する必要があります。
手順4 頂点座標と面情報から重複要素を検出する
四つ目の手順では、OBJに記録された頂点座標と面情報を調べ、完全一致または近似一致する重複要素を検出します。目視だけでは確認できない重複も、数値情報を比較することで見つけられます。
完全重複の代表例は、同じ三つの頂点番号を使う三角形の面が複数回登録されている状態です。頂点の並び順が同じ場合だけでなく、順番が入れ替わっていても同じ三頂点から構成されていれば、幾何学的には同じ位置の面です。ただし、頂点の順番が逆になっている場合は面の向きが反転するため、単なる重複と反転面の両方を確認する必要があります。
面を構成する頂点番号を並べ替えて比較すると、同じ頂点集合を持つ面を検出できます。たとえば、三つの頂点番号の組を小さい順にそろえ、その組が複数存在するかを確認します。重複が見つかった場合は、素材、法線、テクスチャ座標などが異なるかも調べます。同じ形状でも別の表示情報を持つ場合、どちらを残すか慎重に判断する必要があります。
もう一つの重複は、頂点番号が異なるものの座標値が同じ状態です。複数の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作成、アップロード後の確認までを一貫して管理すれば、重複面が発生した工程を追跡しやすくなります。現場で取得した点群を効率よく確認し、三次元データの作成や共有につなげたい場合は、LRTK Phoneを活用した点群取得とデータ運用も検討してみてください。