LRTKレフィクシア株式会社

点群OBJアップロード後に内外が反転する面順序の直し方5選

点群OBJアップロード後に内外が反転する原因

点群から作成したOBJファイルをアップロードした後、外側から見えるはずの面が消え、モデルの内部へ回り込んだときだけ表示されることがあります。表面が黒く見えたり、視点を動かすと一部の面だけ突然消えたりする症状もあります。このような表示異常は、OBJファイルの面を構成する頂点の並び順が反転しているときに起こる可能性があります。

点群は、本来は座標を持つ点の集合です。点だけで構成されたデータには、面の表側や裏側という考え方はありません。しかし、点群から三角形や四角形を生成してメッシュ化すると、各面に表裏が生じます。そのため、「点群OBJアップロード後に内外が反転した」という場合は、OBJに頂点データだけでなく面データが含まれているかを最初に確認する必要があります。

OBJでは、複数の頂点番号を一定の順序で並べて面を表現します。この頂点番号の順序が、面の向きを決める重要な要素です。作成側とアップロード側で表面として扱う頂点順序が異なる場合、作成時には正常に見えていた面がアップロード後に裏面として扱われることがあります。

表示環境によっては、裏面を描画しない設定が使われます。裏面を描画しない処理は、表示する必要のない面を省略して負荷を減らすための一般的な仕組みです。面が正しい方向を向いていれば問題ありませんが、頂点順序が反転していると、外側から見た面が裏面と判定され、透明になったように見えます。

一方、作成環境が表面と裏面の両方を描画している場合、面が反転していても形状は表示されます。このため、作成時には異常に気付かず、アップロード後に初めて反転が判明することがあります。表示結果だけでなく、面の向きや法線を可視化して確認することが重要です。

症状がモデル全体に現れているか、一部分だけに現れているかによっても原因は異なります。全ての面が一様に反転している場合は、OBJ出力時の座標軸変換、左右反転、負のスケール、面順序の一括反転などが考えられます。一部の面だけが反転している場合は、点群からメッシュを生成する際の法線推定、面同士の接続不良、重複頂点、交差面などが関係している可能性があります。

面が表示されているものの、光の当たり方だけが逆に見える場合は、面順序ではなく頂点法線だけが反転していることもあります。反対に、陰影は正常でも、裏面非表示にすると面が消える場合は、面順序に問題がある可能性が高くなります。面順序と法線は関連していますが、同じデータではないため、分けて確認しなければなりません。

点群OBJアップロード後の反転を安全に修正するには、最初から全ての面を一括反転するのではなく、症状の範囲と原因を切り分ける必要があります。正常な面まで反転すると、別の場所が見えなくなるおそれがあります。修正前のOBJを保存したうえで、代表的な範囲から確認を進めることが大切です。

OBJの面順序と法線の関係

OBJファイルでは、頂点座標を表すデータと面を表すデータが別々に記録されます。頂点座標は、一般に行頭が v の行として保存されます。面は、行頭が f の行として保存され、面を構成する頂点の番号が記載されます。

たとえば、3つの頂点を使う三角形面では、f 1 2 3 のように頂点番号が並びます。この並びを f 3 2 1 のように逆順へ変更すると、使用する頂点の位置は変わりませんが、面の向きは反転します。四角形面でも同様で、頂点番号の並びを逆にすることで表裏を入れ替えられます。

面の向きは、面を正面から見たとき、頂点を時計回りにたどるか反時計回りにたどるかによって決まります。ただし、どちらの回り方を表面とするかは、表示環境や座標系の定義によって異なる場合があります。そのため、時計回りが常に正しい、反時計回りが常に正しいと決めつけるのではなく、アップロード先の表示結果と照合する必要があります。

三角形の3頂点からは、面に垂直な方向を計算できます。この方向が面法線です。頂点の並びを反転すると、計算される面法線の方向も反対になります。外側へ向くはずの法線が内側を向くと、面が裏面として判定される原因になります。

OBJには、頂点法線を別途保存できる場合があります。頂点法線は、一般に行頭が vn の行に記録されます。面の行では、頂点番号と頂点法線番号が組み合わされて参照されることがあります。頂点法線は、表面の明るさや滑らかな陰影を計算するときに利用されます。

ここで注意したいのは、面順序を反転しても、既存の頂点法線が自動的に反転するとは限らないことです。面は外向きになったものの、法線が内側を向いたまま残ると、面は表示されても陰影が不自然になります。逆に、法線だけを外向きに直しても、面順序が反転したままであれば、裏面を描画しない環境では面が消える可能性があります。

OBJの面行には、頂点番号だけでなく、テクスチャ座標番号や法線番号がスラッシュ区切りで含まれることがあります。この形式を直接修正するときは、番号を個別に入れ替えるのではなく、1頂点に対応する要素のまとまりを保ったまま順序を逆転させます。頂点番号だけを反転し、法線番号やテクスチャ座標番号を元の順番に残すと、別の頂点へ誤った属性が割り当てられる可能性があります。

点群から生成されたメッシュでは、面ごとに頂点が独立している場合があります。見た目では面が接していても、隣接面が同じ頂点番号を共有していなければ、データ上ではつながっていません。この状態では、面の向きを連続的にそろえる処理や滑らかな法線計算が正しく働かない場合があります。

面順序を修正するときは、面の表裏、頂点法線、面同士の接続という3つの要素を分けて確認する必要があります。OBJアップロード後に面が消える場合は面順序、陰影だけが不自然な場合は法線、部分的に向きがばらつく場合は接続状態を中心に調べると、原因を絞り込みやすくなります。

修正法1 頂点番号の並びを逆順にする

最も直接的な修正方法は、OBJの面行に記載されている頂点番号の並びを逆順へ変更することです。モデル全体の面が同じ方向に反転している場合や、反転している面を明確に特定できる場合に適しています。

作業を始める前に、必ず元のOBJファイルを複製します。OBJはテキストとして編集できる形式ですが、面数が多いファイルでは、1回の置換や一括処理が広い範囲へ影響します。修正後に形状や属性の対応が崩れた場合に戻せるよう、原本を残しておく必要があります。

小規模な確認用OBJであれば、面行を直接見て頂点番号を逆順にできます。三角形面が f 10 20 30 であれば、f 30 20 10 のように変更します。先頭の頂点を固定し、残りを逆順にした f 10 30 20 でも面の向きは反転します。

四角形面が f 10 20 30 40 の場合は、f 40 30 20 10 や f 10 40 30 20 のように、周囲をたどる順序を逆にします。ただし、頂点を無関係な順序へ並べ替えると、面の辺が途中で交差する可能性があります。単に番号の大小を反転するのではなく、現在の輪郭を逆方向にたどる並びへ変更することが重要です。

面の行に頂点番号、テクスチャ座標番号、法線番号が記録されている場合は、それぞれを分離して入れ替えないようにします。たとえば、1つの頂点に対応する記述全体を1単位として扱い、その単位の順番だけを反転します。対応関係を崩すと、表裏は直っても、表面の模様や陰影がずれる可能性があります。

実務で扱う点群OBJは、数十万面から数百万面以上になる場合があります。この規模を手作業で直すのは現実的ではありません。大規模なOBJでは、メッシュの面反転機能、法線編集機能、または面行を安全に処理できる変換手順を使用します。

モデル全体が反転している場合は、全ての面を選択して向きを反転します。ただし、一部の面だけが正常方向を向いている可能性もあるため、全体反転の前に複数箇所を確認します。外周、底面、垂直面、開口部の周辺など、向きが判別しやすい場所を選ぶと判断しやすくなります。

一部の面だけを反転するときは、作業中に裏面も見える表示へ切り替えると選択しやすくなります。裏面非表示のままでは、問題のある面が画面から消え、選択できないことがあります。法線方向を線で表示できる環境では、線がモデルの内側へ向いている面を探し、その面だけを反転します。

管路、容器、室内、地下空間などのモデルでは、どちらを表面とするかを先に決めます。外から見るモデルでは外向きが基本ですが、内部を移動して確認する用途では、内側から面が見える必要があります。閲覧目的によっては、面を内向きにするのではなく、両面表示を利用するほうが適切な場合もあります。

面順序を反転した後は、形状だけでなく陰影も確認します。外側から見えるようになっても、面が黒く見えたり、光の方向と明暗が合わなかったりする場合は、頂点法線が古い方向のまま残っている可能性があります。その場合は、修正法3の法線再計算まで行います。

修正法2 面の向きを連続的に統一する

一部の面だけが裏返っている場合、面を1枚ずつ選択して反転する方法では作業量が大きくなります。点群から自動生成したメッシュでは、隣接する面の向きが部分的にばらつくことがあるため、面同士の接続を基準に向きをそろえる方法が有効です。

正常につながった三角形メッシュでは、2枚の隣接面が共有する辺を互いに反対方向へたどります。ある面が共有辺を頂点Aから頂点Bへたどる場合、隣の面は頂点Bから頂点Aへたどる関係になります。両方の面が同じ方向へ共有辺をたどっている場合は、どちらか一方の頂点順序が反転している可能性があります。

面向きの統一処理では、基準となる面を1枚決め、隣接する面との頂点順序を比較します。向きが合っていない隣接面を反転し、さらにその先の面へ確認を広げます。この処理を接続した面全体に伝播させることで、広い範囲の面順序をそろえられます。

ただし、この処理でそろうのは、面同士の相対的な向きです。全ての面が一貫していても、モデル全体が内向きにそろうことがあります。統一処理の後には、代表的な外周面を確認し、法線が外側へ向いているかを判断します。全体が内向きであれば、最後に全ての面を一括反転します。

閉じた立体であれば、内部と外部を判定して外向きへそろえられる場合があります。しかし、点群から作られる地形メッシュや壁面メッシュは、境界が開いていることが多く、閉じた体積を持ちません。その場合は、上方向、観測方向、代表面の向きなどを基準として判断します。

地形メッシュでは、主要な面が上向きになるようにそろえる方法があります。ただし、急な法面や垂直な擁壁、張り出した構造物などを含む場合、高さ方向だけでは正しい向きを判定できません。地表部と構造物を分けて処理するか、基準面からの接続を利用して統一する方法が必要です。

面向きの統一が途中で止まる場合は、面同士がデータ上で接続されていない可能性があります。同じ座標に頂点が重なっていても、異なる頂点番号を参照していれば隣接面として認識されません。このような場合は、重複頂点を適切な範囲で統合してから、向きの統一処理をやり直します。

複数の離れた部品を含むOBJでは、接続した面のグループごとに処理が分かれます。地面、建物、設備、仮設物などが別々の部品として存在する場合、1つの部品で面向きがそろっても、ほかの部品には反映されません。全ての接続グループを対象に処理したか確認します。

面の向きをそろえた後は、モデルを複数方向から見て確認します。上面だけでなく、下面、背面、開口部の内側も確認することが重要です。特に薄い板状の構造物では、表側と裏側の面が近接しているため、誤って両側を同じ方向へそろえると表示が不自然になる場合があります。

修正法3 法線を再計算して面順序と一致させる

面順序を修正しても、OBJ内に以前の頂点法線が残っていると、陰影が反転したままになることがあります。そのため、頂点番号の並びを変更した後は、最終的な面順序を基準に法線を再計算することが重要です。

面法線は、面を構成する頂点の位置と順序から計算されます。頂点法線は、周囲の面法線を基に作成されることが一般的です。複数面の法線を平均することで、面の境界を滑らかに見せられます。しかし、面順序が混在している状態で法線を平均すると、反対方向の法線が打ち消し合い、方向が不安定になることがあります。

そのため、法線を再計算する前に、面の向きを統一しておく必要があります。面順序がばらついたまま法線だけを再計算しても、根本的な問題は解決しません。まず面順序を整え、その後に法線を作り直す順序が基本です。

法線再計算には、外向きへ計算する方法と内向きへ計算する方法があります。閉じた立体で外周を表示する場合は、通常は外向きへ計算します。内部空間の閲覧を目的とする場合でも、データ自体は外向きに統一し、表示側で両面を扱うほうが、ほかの処理との互換性を保ちやすい場合があります。

点群から生成したメッシュでは、全ての面を滑らかにすると、実際の角や段差まで丸く見えることがあります。法線の平均範囲を広げすぎると、建物の壁と床の境界、構造物の稜線、段差、切断面などが滑らかにつながって見えます。形状確認や計測に利用する場合は、急な角度を持つ境界では法線を分けることが適しています。

一方、地形のような連続曲面では、面ごとの法線をそのまま表示すると、細かな三角形の境界が目立つ場合があります。地表の見やすさを重視するときは、近接する面の法線を適度に平均し、滑らかな陰影にする方法があります。対象が地形なのか、人工構造物なのかによって設定を分ける必要があります。

法線を再計算した後は、明暗の向きを確認します。光源が上にあるとき、上向きの面が明るく、下向きの面が暗くなるかを見ます。視点を回転させたときに、不自然な黒い面や急な明暗の反転がないかを確認します。

法線方向を線で表示できる場合は、代表的な面を拡大して確認します。外周面の線が内部へ向いている場合は、面順序または法線計算の方向が反対です。一部だけ線の向きが異なる場合は、面向きの統一処理がその範囲まで届いていない可能性があります。

OBJを書き出すときに頂点法線を含めるかどうかも確認します。アップロード先がOBJ内の法線を利用する場合、正しい法線を含めることで作成時に近い陰影を再現できます。一方、アップロード先が法線を独自に再計算する場合は、面順序と接続状態が正しいことが特に重要になります。

法線を削除してアップロード先で再計算させる方法もありますが、常に同じ結果になるとは限りません。角の扱い、面の分割、法線の平均条件によって見え方が変わる可能性があります。重要な形状では、作成側で法線を確定し、試験アップロードで表示結果を確認することが安全です。

修正法4 負のスケールと座標軸変換を見直す

OBJの面順序が正しくても、書き出し前の座標変換によって内外が反転することがあります。特に注意が必要なのは、いずれかの軸に負の倍率を適用した状態です。

モデルの左右を合わせるために、X軸方向へマイナス1倍の変換を設定するような処理は、鏡に映したような反転になります。この処理を行うと、頂点の位置だけでなく、座標系の向きが変化し、面の表裏が入れ替わる場合があります。

作成環境では、負のスケールに合わせて法線表示が補正され、正常に見えることがあります。しかし、OBJへ書き出すときに、頂点座標だけが反転し、面順序や法線が適切に変換されないと、アップロード後に内外が反転します。

対策として、OBJ出力前に変換を形状へ反映し、スケール値を正の状態へ戻します。左右反転した座標を確定した後で、面順序を統一し、法線を再計算します。表示上の変換を残したまま出力するより、最終座標として確定したデータを作るほうが問題を切り分けやすくなります。

座標軸の入れ替えも確認が必要です。作成側とアップロード側で、どの軸を上方向や前方向とするかが異なる場合、OBJ出力時に軸変換が行われることがあります。単なる回転であれば面の表裏は通常変わりませんが、軸の交換と符号反転の組み合わせによっては鏡映となり、面が反転します。

たとえば、上方向の軸を変更するとき、軸を正しく回転させる代わりに、特定軸の符号だけを反転して合わせると、左右の向きまで変わる可能性があります。軸変換後のモデルが正しい位置に見えるだけでなく、座標系の向きが保たれているかを確認します。

点群では、平面直角座標などの大きな座標値を扱う場合があります。表示や処理を安定させるため、現場付近を一時的な原点へ移動してOBJを書き出すことがあります。平行移動だけで面の向きが変わることは通常ありません。反転の原因になりやすいのは、原点移動と同時に行う軸交換や符号反転です。

単位変換も、正の倍率であれば面の表裏を変えません。メートルからミリメートルへ変換するような正の拡大縮小は、通常は問題になりません。しかし、単位変換の設定と左右反転の設定が同じ処理内に含まれている場合は、負の倍率が残っていないか確認します。

モデル全体が一様に裏返っている場合は、個々の面を修正する前に変換履歴を確認します。変換処理が原因であれば、面を一括反転するだけでも一時的には表示が直りますが、次回同じ手順で出力したときに再発します。OBJ出力工程そのものを修正することが重要です。

確認用として、単純な三角形や箱形状を同じ設定で書き出す方法も有効です。複雑な点群メッシュでは、どちらが正しい表面か判断しにくいことがあります。表裏が分かりやすい小さな形状を同じ軸設定で変換し、アップロード後の向きを確認すると原因を絞り込みやすくなります。

修正法5 多角形を三角形化して不安定な面を直す

OBJでは、三角形だけでなく、4頂点以上を持つ多角形面も記録できます。しかし、四角形や多角形が完全な平面になっていない場合、表示環境によって異なる三角形分割が行われ、面の向きや見え方が変わることがあります。

点群から生成したメッシュでは、頂点の高さや位置に細かなばらつきがあるため、4頂点が同一平面上に並ばないことがあります。作成環境では1枚の四角形として表示されていても、アップロード先では内部的に2枚の三角形へ分割されます。

どちらの対角線で分割するかが作成側とアップロード側で異なると、ねじれた四角形の形状が変わって見えます。一方の三角形だけが反転したように見えたり、面の一部が欠けたりすることもあります。

この問題を減らす方法が、アップロード前の三角形化です。四角形や多角形を作成側で三角形へ分割しておけば、OBJ内に最終的な面形状を確定できます。アップロード先が独自の方法で多角形を分割する余地を減らせます。

三角形化の前には、多角形の頂点が輪郭に沿った順序で並んでいるかを確認します。頂点順序が途中で交差している場合、そのまま三角形化すると、交差した面や反転面が生成される可能性があります。番号順に並べるのではなく、面の外周を一周する順序になっている必要があります。

凹形状を持つ多角形も注意が必要です。中央がへこんだ輪郭を単純な扇形に分割すると、多角形の外側へ三角形がはみ出す場合があります。元の輪郭内に収まるように三角形化し、分割後の面が交差していないか確認します。

三角形化後には、面積がほぼゼロの三角形を調べます。3頂点がほぼ一直線上に並ぶ面は、法線方向を安定して計算できません。わずかな座標差によって法線が反転したり、アップロード時に無効な面として除外されたりする可能性があります。

極端に細長い三角形も表示を不安定にする要因です。点群の離れた頂点が誤って接続されると、周囲の面に比べて非常に長い辺を持つ三角形ができます。このような面は、向きを直すだけでなく、削除して周辺を再生成する必要があります。

三角形化すると面数が増えることがあります。特に、多数の四角形や多角形を含むOBJでは、データ容量や処理負荷が増加する可能性があります。ただし、表示環境ごとの解釈差を減らし、面順序を明確にできる点は大きな利点です。

三角形化後は、改めて面の向きを統一し、法線を再計算します。多角形の状態で法線を整えていても、分割によって新しい面が生成されるため、最終的な三角形メッシュを基準に確認する必要があります。

全ての面を必要以上に細分化する必要はありません。ここでいう三角形化は、面を無数に分割して密度を高める処理ではなく、既存の多角形を明確な三角形へ変換する作業です。点群の解像度を超えて細分化しても、新しい測定情報が増えるわけではありません。

面反転を引き起こすメッシュ不良の修復方法

面順序の統一や法線再計算がうまくいかない場合、メッシュ自体に接続不良がある可能性があります。点群から自動生成されたメッシュには、重複頂点、重複面、非多様体形状、穴、自己交差などが含まれることがあります。

重複頂点とは、同じ位置または極めて近い位置に複数の頂点が存在する状態です。見た目では2枚の面がつながっていても、別々の頂点番号を参照している場合、データ上では分離しています。面向きの統一処理は、共有頂点や共有辺を基準に進むため、重複頂点がある場所で処理が止まることがあります。

重複頂点を統合するときは、許容距離を慎重に設定します。許容距離が小さすぎると重複を解消できませんが、大きすぎると本来別の位置にある頂点まで結合されます。細い溝、段差、板厚、部材間の隙間などが失われる可能性があるため、点群密度や必要な最小形状を考慮します。

重複面は、同じ場所に同じ形状の面が2枚以上存在する状態です。一方が表向き、もう一方が裏向きになっていると、視点や表示条件によって面がちらつくことがあります。縞模様や不規則な明暗として見える場合もあります。重複面は不要なものを削除し、1枚だけ残します。

非多様体形状とは、一般的な閉じた表面として扱いにくい接続状態です。通常の閉じたメッシュでは、1本の辺を2枚の面が共有します。1本の辺へ3枚以上の面が接続している場合、どちらが内側でどちらが外側かを一意に判断できないことがあります。

面同士が一点だけで接している状態や、薄い面が立体内部へ入り込んでいる状態も、向きの自動判定を不安定にします。不要な内部面を削除し、表面として必要な面の接続を整理してから、面向きの統一を行います。

穴があること自体は、必ずしもデータ不良ではありません。地形メッシュ、壁面だけを切り出したデータ、開口部を持つ構造物などでは、境界が開いているのが正常です。しかし、閉じた立体として扱う予定のモデルに意図しない穴があると、外側と内側の判定が難しくなります。

穴を自動的に埋める処理では、必要な開口部まで閉じないよう注意します。配管の開口、窓、扉、点検口などを誤って埋めると、形状の意味が変わります。修復対象を確認し、小さな不要穴と設計上必要な開口を区別します。

自己交差とは、面が別の面を突き抜けたり、同じ面の辺が交差したりする状態です。点群のノイズや誤った近傍接続により、本来離れている点同士が結ばれると発生します。自己交差面は、向きを反転しても正しい表面にはなりません。該当面を削除し、周辺の点群から面を作り直す必要があります。

修復作業は、重複面の確認、重複頂点の整理、非多様体辺の確認、穴と交差面の修復、面向きの統一、法線再計算という順で進めると整理しやすくなります。接続不良を残したまま法線だけを直しても、再アップロード時に同じ場所で表示異常が出る可能性があります。

点群OBJアップロード前に確認する項目

面順序を修正した後は、編集画面だけでなく、書き出したOBJファイルを改めて確認します。編集画面の内部データが正常でも、OBJへの変換時に軸、面、法線、属性の扱いが変わる場合があるためです。

最初に、OBJへ面データが出力されているかを確認します。頂点だけを表示する点群OBJと、面を持つメッシュOBJでは、確認方法が異なります。面行がないOBJで表裏の問題が起きているように見える場合は、点の大きさ、表示色、透明度、読み込み範囲など別の原因を調べます。

次に、モデル全体を複数方向から確認します。上から見て正常でも、下側や背面が反転している場合があります。地形では法面、擁壁、橋梁下面、掘削面など、水平でない場所を重点的に見ます。

裏面を描画しない表示でも確認します。両面表示では、反転面が存在していても見えるため、問題を見逃す可能性があります。実際のアップロード先と近い表示条件で、外側から必要な面が欠けないかを調べます。

同時に、両面表示で重複面や交差面も確認します。裏面非表示だけでは、内部に残った不要面を見つけにくい場合があります。両面表示と裏面非表示を切り替えながら確認することが重要です。

法線を可視化できる場合は、代表的な範囲で線の方向を見ます。外周面では外側、地形上面ではおおむね上側へ向いているかを確認します。線の長さはモデルの縮尺に合わせ、周囲の線と重なりすぎないよう調整します。

陰影表示では、モデルを回転しながら明暗の変化を確認します。面が外向きでも、法線が内向きであれば、不自然に暗く見える可能性があります。表面に急な黒い筋が出る場合は、隣接面の法線や面順序がそろっていないことがあります。

OBJに複数の部品が含まれる場合は、それぞれを確認します。地形だけを見て正常と判断しても、構造物や設備の面が反転している場合があります。部品ごとに接続状態が独立していると、向きの統一処理も個別に必要です。

ファイル名、保存日時、ファイル容量、頂点数、面数も確認します。修正前のファイルを誤ってアップロードすると、作業内容が反映されません。三角形化した場合は面数が増え、重複面を削除した場合は面数が減ることがあります。変化が作業内容と一致しているかを見ます。

修正後のOBJは、元ファイルと区別できる名前で保存します。以前のデータが表示側に残っている可能性も考え、必要に応じて別のデータとしてアップロードし、比較します。同じファイル名で上書きし続けると、どの状態を確認しているのか分かりにくくなります。

大容量OBJでは、全体をアップロードする前に一部範囲で試験する方法が有効です。反転が起こりやすい垂直面、下面、開口部、多角形面を含む小さな範囲を切り出し、同じ設定でアップロードします。試験データで正常な表示を確認してから全体処理へ進むことで、再作業の負担を抑えられます。

点群からOBJを作成するときの再発防止策

点群OBJアップロード後の面反転を繰り返さないためには、アップロード直前の修正だけでなく、点群取得からOBJ出力までの工程を整えることが重要です。

点群から面を生成するときは、最初に表面方向の基準を決めます。地形では上側、閉じた構造物では外周側を表とするなど、対象に応じて方針を定めます。管路内や室内を閲覧する場合も、どちら側から見ることを想定するかを明確にします。

点群に法線を推定してからメッシュを作る場合、近傍点の範囲が重要です。近傍範囲が小さすぎると、測定ノイズの影響で法線方向がばらつきます。大きすぎると、角を挟んだ別の面や薄い部材の反対側まで同じ近傍として扱われ、誤った方向が推定される可能性があります。

薄い板、標識、金網、配管、手すりなどは、表裏の点が近接しています。近傍範囲が部材の厚さを超えると、反対側の点を同じ表面として処理し、面の交差や法線反転が発生することがあります。対象物の寸法と点間隔に合った設定が必要です。

複数方向から取得した点群を統合する場合は、観測方向だけで法線を決めないようにします。各取得位置から見た表面方向が異なるため、統合後に法線方向が混在する可能性があります。点群の位置合わせを確認し、全体形状を基準に法線を統一してからメッシュを生成します。

不要な点を除去することも重要です。移動体、反射による外れ点、空中の孤立点、対象外の背景などが残っていると、離れた点同士が結ばれ、細長い面や交差面が作られることがあります。

一方、点群を過度に間引くと、必要な形状の連続性が失われます。点間隔が広がりすぎると、大きく細長い三角形、穴、誤接続が増える可能性があります。容量削減だけを目的にせず、必要な段差や曲面を維持できる密度を選びます。

地形、建物、設備など性質の異なる対象を一度にメッシュ化すると、全体へ同じ条件を適用しにくくなります。地形は上向きの連続面として扱いやすい一方、建物には垂直面や下面があります。対象を分けて処理し、それぞれに適した条件で面を作成してから統合する方法も有効です。

OBJ出力時には、軸方向、単位、原点、三角形化、法線出力の設定を記録します。担当者ごとに設定が変わると、同じ点群から異なる向きのOBJが作られる可能性があります。標準的な出力条件を決め、案件ごとの差分だけを記録すると再現しやすくなります。

負のスケールや鏡映変換を使用した場合は、OBJ出力前に変換を確定し、面順序と法線を再計算します。座標が正しい位置にあることだけでなく、面の向きが保たれていることを確認します。

本番の大容量データを処理する前に、代表範囲で試験出力します。水平面、垂直面、下面、開口部、凹形状を含む範囲を選ぶと、面順序や三角形化の問題を発見しやすくなります。

現場で点群を取得するときは、対象物を一方向からだけ測らないことも重要です。死角となった場所は点密度が低くなり、メッシュ生成時に穴や誤接続が生じやすくなります。必要な表面を複数方向から取得し、位置合わせ後の重なりを確認します。

LRTK Phoneを用いて現場データを取得する場合も、対象の周囲をどの経路で移動するか、必要な面が十分に取得できているか、遮蔽物の影響で点が欠けていないかを確認することが大切です。取得段階で点群品質を整えることで、OBJ作成後に多数の反転面を修正する負担を抑えやすくなります。

まとめ

点群OBJアップロード後にモデルの内外が反転する場合は、面を構成する頂点番号の並び、面同士の接続、頂点法線、座標変換、多角形面の状態を順番に確認します。

モデル全体が一様に反転している場合は、面順序の一括反転だけでなく、負のスケールや座標軸変換を確認します。一部の面だけが反転している場合は、隣接面の向きを連続的に統一し、重複頂点や接続不良を修復します。

面順序を直した後は、頂点法線を再計算し、面の向きと陰影の方向を一致させます。四角形以上の面で表示結果が安定しない場合は、アップロード前に三角形化し、最終的な分割方法を確定します。

修正後は、両面表示だけでなく裏面非表示でも確認し、外側から必要な面が見えるかを調べます。陰影、面数、頂点数、ファイル名、保存日時まで確認すると、古いデータの取り違えや修正漏れを防ぎやすくなります。

面反転は、アップロード先だけの問題とは限りません。点群の取得状態、法線推定、メッシュ生成、座標変換、OBJ出力が連続して影響します。各工程の設定を記録し、小範囲で試験してから全体を処理することが安定した運用につながります。

現場で必要な範囲を効率よく計測し、点群からOBJを作成する工程を整えたい場合は、取得段階からデータ品質を確認できるLRTK Phoneの活用も検討してみてください。

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

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