LRTKレフィクシア株式会社

穴あき3Dメッシュの体積計算を正す5つの修復手順

穴あき3Dメッシュで体積計算が狂う理由

3Dメッシュを使った体積計算では、対象物の表面がすべてポリゴンで覆われ、内部と外部が明確に分かれていることが基本条件です。ところが、三次元計測や点群から生成したメッシュには、計測漏れや遮蔽、表面反射、点密度不足などによって穴が生じることがあります。穴が開いた状態では、メッシュが閉じた立体として成立しないため、計算結果が不安定になります。

体積計算の多くは、三角形ポリゴンと基準点を結んで多数の四面体に分解し、それぞれの符号付き体積を合計する方法を利用します。この方法では、表面を構成するすべての三角形の向きが統一され、隣接するポリゴンが切れ目なくつながっている必要があります。穴が残っていると、本来存在するはずの面に対応する四面体が作られず、合計値が実際の体積より小さくなったり、メッシュの向きによって大きく変動したりします。

問題は穴だけではありません。同じ位置に複数の面が重なっている重複面、三角形の面積がほぼゼロになっている縮退面、本体から離れて浮いている孤立ポリゴン、三つ以上の面が同じエッジを共有する非多様体構造も体積計算を狂わせます。見た目では立体が完成しているように見えても、内部に不要な面が残っていたり、ポリゴンの表裏が混在していたりすれば、正しい値を得られません。

また、メッシュに存在する開口部がすべて修復対象とは限りません。容器の口、配管の端部、建物の出入口、機械部品の貫通穴など、実物として開いている部分もあります。しかし、そのままでは立体の体積を定義できないため、何の体積を求めるのかに応じて仮想的な閉鎖面を設定する必要があります。外形体積を求める場合と、材料部分の体積を求める場合、内部容量を求める場合では、閉じるべき境界が異なります。

穴あき3Dメッシュの修復では、単に穴を自動で埋めるのではなく、計算対象を定義し、不要な形状を整理し、適切な面を再構築し、立体として閉じていることを検証する流れが重要です。修復の目的を明確にしないまま処理すると、計算可能なデータにはなっても、実物とは異なる体積を求めてしまうおそれがあります。

修復前に元データと計算条件を固定する

修復作業を始める前に、元の3Dメッシュを変更せず保存しておきます。修復処理ではポリゴンの削除、頂点の統合、穴埋め、平滑化などを行うため、一度処理したデータだけを残すと、体積差の原因を追跡できなくなることがあります。元データ、修復途中のデータ、体積計算に使用した最終データを分けて管理すると、作業の再現性を確保しやすくなります。

次に確認するのは座標単位です。メッシュの座標値がミリメートル、センチメートル、メートルのどれで記録されているかによって、体積値は大きく変わります。長さの単位が1000倍異なれば、体積はその三乗である10億倍異なります。形状の見た目が同じでも、単位設定を誤ると体積計算の結果は実用になりません。

例えば、座標値をミリメートルとして扱った体積が立方ミリメートルで出力された場合、立方メートルへ換算するには10億で割ります。センチメートルから立方メートルへ換算する場合は100万で割ります。体積計算の前後で、代表的な辺の長さや対象物の全幅を確認し、現実の寸法と一致しているかを確かめることが重要です。

計算対象も事前に固定します。外形によって囲まれる総体積を求めるのか、空洞を差し引いた材料体積を求めるのか、容器内部の容量を求めるのかによって、必要なメッシュが変わります。中空構造の外側と内側を同時にメッシュ化している場合、外側の閉じた面だけを計算すれば外形体積となり、内側の空洞を適切な向きで差し引けば材料体積となります。

地形メッシュでは、地表面だけを生成しても通常は底面や側面が存在しません。そのため、閉じた立体の体積を直接求めることはできません。基準となる水平面、設計面、施工前地形、任意の境界面などを設定し、その間の体積を求める必要があります。対象が地形なのか、独立した物体なのかを区別するだけでも、修復方法の選択を誤りにくくなります。

さらに、必要な精度を決めます。概算土量を把握するための体積計算と、部品製造や品質検査に使う体積計算では、許容できる穴の大きさや形状変化が異なります。小さな穴を平面で埋めても影響が無視できる用途がある一方、複雑な曲面上の欠損を単純に埋めると大きな誤差につながる用途もあります。目的、単位、基準面、許容誤差を固定してから修復を始めることが、正しい結果への第一歩です。

手順1 境界エッジから穴の位置と範囲を特定する

最初の修復手順は、穴の境界を構成するエッジを特定することです。正常な閉じた三角形メッシュでは、通常、一つのエッジを二つの三角形が共有します。片側にしか三角形が存在しないエッジは境界エッジとなり、複数の境界エッジが連続して輪を作っている部分が穴の候補です。

画面上でメッシュを眺めるだけでは、小さな欠損や細長い隙間を見落とすことがあります。穴の検出では、境界エッジの数、境界ループの数、各ループの周長、ループ内の頂点数などを確認します。大きな穴が一つある場合だけでなく、細かな穴が多数散在している場合もあるため、全体を定量的に把握することが重要です。

境界ループを検出したら、それぞれが修復すべき欠損なのか、実物の開口部なのかを分類します。例えば、計測対象が容器であり、上面が開いている場合、その開口部は計測漏れではありません。しかし、容器の外形体積や内部容量を計算するためには、開口部に仮想面を設けて閉じる必要があります。この仮想面をどの高さ、どの形状で設定するかは、計算目的に応じて決めます。

一方、壁面の一部に生じた小さな穴や、遮蔽物の裏側に発生した欠損は、周囲の形状から本来の面を推定して埋めます。穴の周囲がほぼ平面であれば、境界頂点を使った三角形分割で比較的容易に修復できます。曲面上の穴では、単純な平面を入れると本来の膨らみやくぼみが失われるため、周囲の曲率を考慮する必要があります。

穴の大きさは、絶対寸法だけでなく対象物全体に対する割合でも判断します。直径数ミリメートルの穴でも、小型部品では無視できない欠損になることがあります。反対に、大規模な地形メッシュでは同じ寸法の穴が体積にほとんど影響しない場合があります。境界ループの投影面積や想定される欠損体積を見積もり、重点的に確認する場所を決めると効率的です。

境界が一つの閉じた輪になっていない場合は、穴以外の問題が含まれている可能性があります。途中で分岐する境界、重なり合う境界、極端に細い切れ目などは、重複頂点、非多様体エッジ、自己交差が原因で生じることがあります。この状態で穴埋めを実行すると、不自然な面が生成されやすいため、次の手順でメッシュ構造を整理してから面を作ります。

手順2 重複面・孤立要素・非多様体を整理する

穴を特定した後は、面を追加する前にメッシュ内部の異常を整理します。先に穴を埋めても、重複面や非多様体構造が残っていれば閉じた立体にはならず、体積計算の不安定さを解消できません。

最初に確認するのは重複頂点です。座標が同じ、または極めて近い位置に複数の頂点が存在すると、見た目では面同士が接続しているようでも、データ上は別々の境界として扱われることがあります。この状態では細い隙間や不要な境界エッジが大量に検出されます。

近接頂点を統合する際は、統合距離を大きくしすぎないことが重要です。しきい値が大きいと、本来離れている稜線や薄い部材の表裏まで一つに結合され、形状がつぶれることがあります。点間隔、計測精度、対象物の最小厚さを参考にし、必要最小限の距離で統合します。

重複面には、頂点の並びまで同じ面だけでなく、同じ位置にありながら頂点の順序が逆になっている面もあります。逆向きの重複面が存在すると、一方の体積寄与をもう一方が打ち消す場合があります。また、面ごとに絶対値を取って体積を合算する処理では、同じ領域を二重に数える原因になります。重複面は穴埋め前に削除し、どちらの面を残すかを周囲の接続関係から判断します。

三つの頂点がほぼ一直線に並び、面積が極端に小さくなった三角形は縮退面です。縮退面は体積への直接的な寄与が小さくても、法線の計算や隣接関係の判定を不安定にします。辺の長さに比べて面積が著しく小さい三角形や、同じ頂点番号を重複して持つ三角形は削除または再構成します。

本体から離れた位置に浮いている孤立ポリゴンや小さなメッシュ片も整理します。計測時のノイズ、移動物、周辺設備、地面の一部などが別の成分として残っていると、それらの体積まで合計される可能性があります。接続成分ごとに面数、表面積、外形寸法を確認し、計算対象に含める成分だけを残します。

非多様体エッジは、一つのエッジを三つ以上の面が共有する状態です。立体表面としては、通常、一つのエッジの両側に一枚ずつ面が接続します。三枚以上が接続すると、どちら側が内部なのか一意に定まりません。内部に残った不要面、交差したシェル、厚さゼロの仕切り面などが原因になりやすいため、周辺の構造を確認して不要な面を取り除きます。

一つの頂点だけで複数の面群が接している非多様体頂点にも注意が必要です。面群を分離して別々の頂点を割り当てるか、周囲を再メッシュ化し、各頂点の近傍が一続きの表面になるように整えます。

自己交差も体積計算に大きな影響を与えます。メッシュの表面同士が互いに突き抜けていると、内部と外部の判定が複雑になり、交差部分が二重に計算されたり、逆に相殺されたりします。自己交差は、穴埋めや強い平滑化によって新たに発生することもあるため、修復前だけでなく修復後にも確認が必要です。

この整理工程を終えた段階で、境界エッジを再検出します。頂点統合や不要面の削除によって、小さな穴が閉じることもあれば、重複面の下に隠れていた穴が新たに現れることもあります。最初の検出結果をそのまま使わず、メッシュ構造を整理した後の状態を基準に、次の穴埋め作業へ進みます。

手順3 穴の形状に合わせて面を再構築する

穴の周囲を整理したら、境界ループを利用して欠損面を再構築します。穴埋めでは、単に境界を三角形で覆えばよいわけではありません。追加する面の形状が実物に近く、周囲のメッシュと滑らかにつながり、体積計算に適した三角形品質を持つことが必要です。

小さく、ほぼ平面上にある穴では、境界ループを平面へ投影し、その輪郭を三角形分割する方法が有効です。境界が凸形状であれば比較的単純に分割できますが、くぼみを持つ凹形状では、輪郭の外側にはみ出す三角形を作らないようにします。境界線同士が交差している場合は、先に頂点順序やエッジ接続を修正しなければなりません。

三角形分割では、極端に細長い三角形を避けます。短辺と長辺の差が大きい面や、角度がほぼ0度に近い面は、法線計算や後続の平滑化を不安定にします。境界内に補助頂点を配置し、周囲のポリゴンと近い大きさの三角形を作ると、形状の連続性を保ちやすくなります。

曲面上の穴では、境界を一枚の平面として埋めると、本来の曲率が失われます。円筒面の欠損を平面で閉じれば、外形が内側へ入り込み、体積が小さくなります。球状に膨らんだ面の穴でも同様です。周囲の頂点位置、法線方向、曲率の変化を参照し、穴の内部に配置する頂点を曲面に沿って補間します。

ただし、周囲から離れるほど本来の形状に関する情報は少なくなります。穴が大きい場合、境界だけから内部形状を正確に復元することは困難です。大きな欠損を自動的に滑らかな曲面で埋めても、それは計算上の推定形状にすぎません。可能であれば、別方向から取得した点群、過去の計測データ、設計寸法、対象物の対称性などを利用して形状を補います。

対象物に対称性がある場合は、欠損していない反対側の形状を参照できます。円筒、球、回転体、左右対称の構造物などでは、既存面から近似形状を求めて欠損部へ適用することで、単純な平面埋めよりも妥当な修復が可能です。ただし、実物が変形している場合や施工誤差を評価する場合は、理想形状に置き換えることで実際の差異を消してしまうため、目的に応じた判断が必要です。

容器の口や配管端部など、意図的な開口部を閉じる場合は、計算上の閉鎖面を明確に定義します。端部が平面で切断された形状なら、境界ループを含む平面にふたを設けます。端面が斜めの場合は、その斜面に沿って閉じます。基準位置を曖昧にすると、ふたの位置がわずかに変わるだけで体積が変化します。

材料体積を求める中空構造では、外側の穴と内側の穴を別々に閉じる必要があります。外面だけを閉じると内部空洞まで材料として計算されます。内面だけを閉じても外形は成立しません。外側と内側をそれぞれ閉じたシェルとして整え、内側の空洞が差し引かれる向きに設定します。

穴埋め後の平滑化は、継ぎ目を目立たなくするために有効ですが、過度に行うと境界周辺の寸法まで変わります。特に角部、稜線、薄板形状では、平滑化によって角が丸まり、体積が増減することがあります。平滑化の対象を新しく生成した面とその周辺に限定し、固定すべき境界頂点は動かさないようにします。

修復面を作成したら、周囲のポリゴン密度との違いも確認します。穴埋め部分だけが極端に粗い場合、曲面の近似精度が低下します。反対に、必要以上に細かいポリゴンを追加すると、データ量が増えるだけでなく、微小な凹凸や自己交差を生むことがあります。体積計算に必要な形状精度を満たす範囲で、周囲と連続した密度に整えることが適切です。

手順4 法線とポリゴンの向きを統一する

穴を埋めて閉じたように見えても、ポリゴンの向きが混在していれば体積は正しく計算できません。三角形ポリゴンでは、三つの頂点を並べる順序によって面の表裏が決まります。右回りと左回りのどちらを表側とするかはデータ形式や座標系によって異なりますが、一つの閉じた表面内では方向が統一されている必要があります。

閉じた立体の外側を向く法線を基準とする場合、隣接する三角形は共有エッジを互いに逆方向にたどります。この関係を順番に伝播させることで、接続された面全体の向きをそろえられます。途中で整合しない箇所があれば、重複面、非多様体エッジ、自己交差などが残っている可能性があります。

一般的な三角形メッシュの符号付き体積は、各三角形の頂点を p0、p1、p2 としたとき、次のような四面体体積の総和として求められます。

V = 1 / 6 × Σ { p0・(p1 × p2) }

ここで、点は内積、×は外積を表します。座標原点と各三角形で構成される四面体の符号付き体積を合計し、すべての面の向きが整った状態で、最後に合計値の絶対値を取ります。

重要なのは、三角形ごとの体積を個別に絶対値へ変換してから足さないことです。閉じた表面では、原点から見た位置や面の向きに応じて正負の寄与が生じ、それらを符号付きのまま合計することで立体全体の体積になります。各面の値を個別に絶対値へ変えると、凹形状や原点をまたぐ形状で過大な結果になることがあります。

メッシュ全体の法線が内側を向いている場合、符号付き体積は負になることがあります。全体が一貫して内向きであれば、最終値の符号を反転することで大きさを得られます。しかし、一部だけが反転している場合は、その面に対応する体積が相殺されるため、単に絶対値を取っても正しい結果にはなりません。

穴埋めで追加した面は、既存面と逆向きになりやすい部分です。修復面の色や法線表示だけで判断するのではなく、隣接関係を使って面向きを統一します。表示設定によっては裏面も同じように描画されるため、画面上の見た目だけでは反転を発見できないことがあります。

中空構造では、外側シェルと内側シェルの向きに注意します。材料体積を求める場合、外側シェルの体積から内側空洞の体積を差し引く必要があります。符号付き体積を利用するなら、外側と内側の法線方向を反対に設定する方法があります。ただし、シェルごとに体積を計算し、外側から内側を明示的に差し引く方法のほうが、処理内容を確認しやすい場合もあります。

複数の独立した閉じた成分を含む場合も、それぞれの法線方向を確認します。計算対象となる複数の物体を合算するのであれば、各成分の体積を個別に求めて合計します。ノイズとして残った小さな閉鎖成分まで一括で計算すると、意図しない体積が加算されるため、成分の分類と法線統一を組み合わせて行います。

手順5 閉じたメッシュとして検証し体積を再計算する

最終手順では、修復したメッシュが本当に閉じた立体として成立しているかを検証します。画面上で穴が見えなくなっただけでは不十分です。境界エッジ、非多様体要素、自己交差、重複面、孤立成分、法線方向などを再確認し、体積計算の条件を満たしていることを確かめます。

閉じた三角形メッシュであれば、原則としてすべてのエッジが二つの面に共有されます。境界エッジの数がゼロであることは重要な確認項目です。ただし、境界エッジがゼロでも、内部に不要な面が残っていたり、表面が自己交差していたりする場合があります。境界検査だけで合格と判断せず、複数の検査を組み合わせます。

非多様体エッジと非多様体頂点もゼロであることを確認します。三つ以上の面が一つのエッジに接続している状態では、立体内部を一意に定義できません。意図的に複数の部材が接触しているモデルでも、体積計算用のメッシュとしては部材ごとに閉じたシェルへ分離したほうが扱いやすくなります。

自己交差の検査では、離れた位置にある三角形同士が交差していないかを確認します。穴埋め面が反対側の表面を突き抜けていないか、薄い部分で表裏が交差していないか、平滑化によって面が折り返していないかを重点的に見ます。交差がある場合は、該当面を削除して局所的に再構築します。

次に、接続成分の数を確認します。一つの物体を計算する予定なのに複数の成分が存在する場合、計測ノイズや浮遊面が残っている可能性があります。逆に、複数の物体を合計する場合は、それぞれが独立した閉鎖シェルになっているかを確認します。面数だけで不要成分を削除すると、小さくても必要な部材を消すことがあるため、位置と寸法を併せて判断します。

体積を再計算したら、結果だけでなく外形寸法や表面積も確認します。修復によって体積が得られるようになっても、対象物の幅、高さ、長さが実測値と大きく異なっていれば、座標単位や頂点統合の設定を誤っている可能性があります。既知の寸法を一つでも照合すると、単位間違いや過度な変形を発見しやすくなります。

原点位置を変えて体積を再計算する検証も有効です。正しく閉じ、面向きが統一されたメッシュでは、座標原点を平行移動しても体積の大きさは原則として変わりません。原点を変えると結果が大きく変動する場合は、穴、法線の不整合、数値精度の問題などを疑います。

非常に大きな座標値を持つメッシュでは、浮動小数点演算の丸め誤差が増えることがあります。対象物の寸法が数メートル程度でも、座標値が非常に大きい場合は、体積計算用の複製データを対象物付近のローカル原点へ平行移動すると、数値計算が安定しやすくなります。平行移動によって形状や体積自体は変化しません。

修復前後のデータを同じ単位、同じ座標系、同じ計算方法で比較することも重要です。異なる設定で出力された数値を比較すると、修復による変化なのか、計算条件の違いなのか判断できません。体積計算条件を記録し、同じ手順で再計算できる状態を整えます。

地形や土量の体積計算では基準面を明確にする

造成地、掘削面、盛土、資材山などを表す地形メッシュは、一般的な物体メッシュと扱いが異なります。地表面を上から計測しただけでは、下面と側面が存在しないため、そのままでは閉じた立体になりません。この状態を穴あきメッシュとして一律に自動修復すると、外周を不適切な位置で閉じ、意図しない体積を計算することがあります。

地形の体積計算では、何を基準に高さの差を求めるかを先に決めます。水平な基準面に対する体積を求める場合は、対象範囲の外周から基準高さまで側面を下ろし、底面を作って閉じます。施工前後の差を求める場合は、同じ平面範囲にある二つの地表面を比較し、その間の盛土量と掘削量を計算します。

施工前地形と施工後地形の範囲が異なる場合は、共通して存在する範囲を定義する必要があります。一方にしかデータがない領域を自動補間すると、実測されていない部分まで体積に含めることになります。外周境界をそろえ、比較対象外の領域を除外してから計算します。

資材山や土砂山では、山の表面と地盤面の交線が体積計算の境界になります。計測メッシュの外周が資材山の裾と一致していない場合、余分な地面が含まれたり、山の一部が切れたりします。地盤面を推定し、資材と地面の境界を抽出したうえで閉鎖面を作ることが重要です。

地盤が傾斜している場合に水平面で底面を作ると、実際には存在しない空間まで体積に含まれることがあります。周囲の地盤点から基準地盤面を作成するか、資材が置かれる前の地形データを使用すると、より実態に近い体積を求められます。

地形メッシュの穴には、計測漏れによる小さな欠損と、建物、車両、植生、水面などによる大きな遮蔽があります。小さな穴は周囲の地形から補間できる場合がありますが、大きな遮蔽を単純に埋めると、地形を推測で作る割合が増えます。計測範囲を追加する、視点を変えて再計測する、対象外領域として除くなど、修復以外の対応も検討します。

自動修復で形状を変えすぎないための注意点

自動修復機能は、多数の境界エッジや微小な欠損を効率よく処理できます。しかし、処理を一括実行するだけでは、意図的な開口部まで閉じたり、薄い部分を結合したり、実物とは異なる面を生成したりすることがあります。

特に注意したいのは、埋める穴の最大寸法です。最大寸法を大きく設定すると、大きな開口部や計測範囲の外周まで自動で閉じられる可能性があります。まず微小な穴だけを対象にし、処理結果を確認してから対象範囲を広げます。

近接頂点の自動統合でも、距離設定を段階的に調整します。しきい値を大きくして境界エッジを一度に減らそうとすると、狭い溝、薄板、近接した配管、隣接部材などが結合されることがあります。統合後は境界エッジの数だけでなく、外形寸法や局所的な厚さが変化していないかを確認します。

自動平滑化は、ノイズを減らして見た目を整える一方、形状を縮ませる傾向があります。凸部が低くなり、凹部が浅くなると、体積も変化します。体積計算用の修復では、見た目の滑らかさよりも寸法の保存を優先し、必要な範囲だけに限定して適用します。

ポリゴン数を減らす簡略化処理も体積へ影響します。平面の多い形状では少ない面数でも形状を維持できますが、曲率の大きい面や複雑な稜線では、ポリゴンを減らすほど近似誤差が増えます。修復前後で体積を比較する際は、穴埋めと簡略化を同時に行わず、それぞれの影響を分けて確認することが望まれます。

自動処理の結果は、処理済みという表示だけで判断しません。どの穴が閉じられ、何枚の面が削除され、何個の頂点が統合されたかを記録します。修復による変更量が想定より大きい場合は、設定を見直して元データから再実行します。

修復前後の体積差から精度を評価する

修復後に体積が計算できたとしても、その値が十分に正しいとは限りません。欠損部分の形状は推定によって作られるため、修復面が実物からどの程度ずれているかを評価する必要があります。

まず、修復前に計算可能な参考値がある場合は、修復後の値との差を確認します。穴あきメッシュの体積値は正解ではありませんが、修復によってどの程度変化したかを見る指標にはなります。小さな穴を数か所埋めただけなのに体積が大きく変化した場合は、法線反転や重複面の削除など、穴埋め以外の要因が影響している可能性があります。

修復面の投影面積と、周囲から推定される深さを使って、体積変化の妥当な範囲を考えることもできます。穴の面積が小さく、周囲の凹凸も小さいにもかかわらず、大きな体積差が生じた場合は、計算条件を再確認します。

既知寸法から概算体積を求められる対象物では、メッシュ体積と比較します。直方体に近い対象なら幅、奥行き、高さの積、円柱に近い対象なら底面積と長さの積を参考値にできます。複雑形状で完全には一致しなくても、桁や大まかな範囲を確認できます。

同じメッシュに対して、穴埋め方法を変えた複数の修復結果を比較する方法も有効です。平面で埋めた場合、曲面補間した場合、設計形状を利用した場合の体積差を調べると、欠損形状に起因する不確かさを把握できます。結果のばらつきが大きい場合は、修復だけで確定値を出すのではなく、追加計測を検討します。

体積差は絶対値だけでなく割合でも確認します。対象物全体が大きければ、同じ体積差でも相対的な影響は小さくなります。修復前後の差を修復後体積で割り、百分率で表すと、異なる大きさの対象物を比較しやすくなります。

ただし、体積差が小さいことだけをもって修復が正しいとは判断できません。膨らんだ部分とへこんだ部分の誤差が相殺され、総体積だけが近くなる場合があります。重要な断面、外形寸法、修復部分の表面位置も併せて確認し、形状と体積の両面から評価します。

実務では、元データ名、計測日時、座標単位、修復設定、削除した成分、埋めた穴の数、体積計算方法、最終体積を記録しておくと、後から結果を説明しやすくなります。特に数量管理や検査に使用する場合は、修復前後の画像やデータも保存し、どこを推定したのか分かるようにします。

穴あきメッシュを発生させにくい計測と生成の進め方

修復の手間と不確かさを減らすには、メッシュ生成後の処理だけでなく、計測段階から穴を作りにくくすることが重要です。三次元計測では、対象物を一方向から取得するだけでは、裏側、下面、くぼみ、障害物の背後などにデータのない領域が生じます。

対象物の周囲を複数方向から計測し、隣接する取得範囲を十分に重ねます。正面だけでなく斜め方向、上方向、可能であれば下方向からも取得すると、遮蔽による欠損を減らせます。円筒や配管のような形状では、一周を連続的に取得し、開始位置と終了位置が十分に重なるようにします。

表面の反射や色の均一性もメッシュ生成に影響します。光沢面、透明面、黒色面、繰り返し模様の少ない面などは対応点を取得しにくく、点群が欠落することがあります。照明条件を変える、取得距離を調整する、別方向から補うなど、対象に合わせた計測が必要です。

点密度は、対象物の最小形状に応じて設定します。細い部材、鋭い角、小さなくぼみを表現するには、それらより十分に細かい間隔で点を取得する必要があります。点密度が不足した状態で細かなポリゴンを作っても、実物の形状が復元されるわけではありません。

点群からメッシュを作る際は、欠損を自動的に大きく埋める設定を慎重に使います。生成直後から穴が見えない場合でも、計測されていない場所に推定面が作られている可能性があります。元の点群とメッシュを重ね、ポリゴンが実測点から大きく離れていないかを確認します。

不要な背景点をメッシュ生成前に除去することも重要です。対象物と地面、壁、周辺設備が一つのメッシュにつながると、後から分離する作業が複雑になります。対象範囲を切り出し、ノイズ点や移動物を整理したうえでメッシュ化すると、閉じたシェルを作りやすくなります。

座標系と縮尺の管理も計測段階から行います。複数回の計測データを統合する場合、位置合わせの誤差によって二重面や隙間が生じることがあります。重複領域のずれを確認し、一方の面だけを残すか、点群の段階で位置合わせを改善します。

現場で計測結果を確認できる場合は、作業終了前に欠損箇所を点検します。大きな穴が見つかったときにその場で追加計測できれば、後から形状を推定して埋めるよりも信頼性の高いメッシュを作成できます。修復技術を前提にするのではなく、修復が必要な範囲を最小限にする取得計画が重要です。

体積計算で起こりやすい修復ミス

穴あきメッシュの修復で起こりやすいミスの一つは、すべての境界を同じ方法で閉じることです。小さな計測欠損、対象物本来の開口部、地形データの外周では、閉じる目的も適切な形状も異なります。一括処理ではなく、境界の種類を分類して対応します。

次に多いのは、体積が計算できたことを修復完了と判断することです。非多様体や自己交差を含むメッシュでも、処理方法によっては数値が出力されます。数値が表示されたことと、幾何学的に正しい体積であることは同じではありません。

法線の一括反転も注意が必要です。全体が内向きなら一括反転で修正できますが、一部だけが逆向きの場合、全体を反転しても不整合は残ります。接続関係に基づいて面向きを伝播させ、反転している局所領域を特定します。

穴を埋めた後に強く平滑化し、外形まで変えてしまうミスもあります。修復部分の継ぎ目が見えなくなっても、体積計算では実物との位置差が重要です。見た目を整える処理と、寸法を保つ処理を区別します。

近接頂点の統合距離を大きくしすぎると、薄い空洞や狭い間隔が消失します。中空部品の内面と外面が結合されれば、材料体積や内部容量を正しく計算できません。統合後には、対象物の最小厚さや開口幅を確認します。

複数の閉鎖成分を無条件に合算することも誤差の原因です。対象物の周囲に残った小さなノイズが閉じた形状になっていると、その体積が加算されます。接続成分ごとに位置と大きさを確認し、必要な成分だけを計算対象にします。

中空構造で内部シェルを差し引かないミスもあります。外側と内側が正しくメッシュ化されていても、両方を正の体積として加算すれば、材料体積は過大になります。求めたいのが外形体積、内部容量、材料体積のどれかを明確にし、シェルの扱いを変えます。

地形メッシュを一般的な物体と同じように自動閉鎖すると、外周と底面の位置が意図せず決定されます。土量計算では、境界と基準面の設定が体積値を左右します。穴埋め処理の前に、比較範囲と基準面を定義する必要があります。

修復後のデータだけを保存し、元データや処理条件を残さないことも避けるべきです。後から数値に疑問が生じても、どの面を削除し、どの穴を埋めたかを再確認できません。各工程のデータを分けて保存し、体積計算に使用した最終版を識別できるようにします。

まとめ

穴あき3Dメッシュの体積計算を正すには、穴を見つけて自動的に埋めるだけでは不十分です。まず計算対象、座標単位、基準面、必要精度を固定し、境界エッジから欠損範囲を把握します。その後、重複面、縮退面、孤立要素、非多様体、自己交差などを整理し、穴の形状に適した面を再構築します。

修復面を追加した後は、すべてのポリゴンの向きを統一し、境界エッジが残っていないこと、閉じたシェルになっていることを確認します。体積は符号付きの寄与を合計して求め、結果だけでなく外形寸法、表面積、修復前後の差も確認することが重要です。

地形や土量を扱う場合は、地表面を単純に閉じるのではなく、水平面、設計面、施工前地形などの基準を設定します。対象物本来の開口部を閉じる場合も、外形体積、内部容量、材料体積のどれを求めるかによって仮想面の位置や内側シェルの扱いが変わります。

修復範囲が広いほど、計算結果に含まれる推定の割合は増えます。大きな欠損や重要な曲面では、無理に面を生成するより、追加計測によって実測データを補うほうが信頼性を高められます。計測時に複数方向から十分な重複を確保し、現場で欠損を確認することが、最終的な体積精度の向上につながります。

現場で取得した三次元データを体積管理へ活用する際は、計測から点群確認、対象範囲の整理、体積計算までを一連の作業として設計することが大切です。現場での三次元計測や体積確認をより効率化したい場合は、LRTK Phoneを活用した計測方法も確認してみてください。

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

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