LRTKレフィクシア株式会社

点群OBJアップロード後の透明度反転を直す4つの材質設定

点群OBJアップロード後に透明度が反転する仕組み

点群や写真測量の成果から三角形メッシュを作成し、OBJとしてアップロードした後、本来見えるはずの地形や構造物が透明になり、除去したい背景や余白だけが不透明に残ることがあります。モデル全体が消えたように見える場合もあれば、計測対象の周囲に黒色や白色の板が残る場合もあります。

この症状は、必ずしもOBJの頂点座標や面情報が壊れたことを意味しません。OBJは主として頂点、テクスチャ座標、法線、面などの形状情報を記録し、表面色、画像参照、透明度などの材質情報は、通常は別のMTLファイルに記録します。OBJ内のmtllibがMTLファイルを参照し、usemtlが各面へ適用する材質名を指定し、MTL内のnewmtlがその材質を定義します。したがって、点群OBJアップロード後の見え方は、OBJ単体ではなく、OBJ、MTL、カラー画像、透過用画像、アップロード先の読込仕様を組み合わせて確認する必要があります。([The Library of Congress][1])

透明度が反転する代表的な原因は、不透明度と透過率を反対方向の値として扱う設定が混在することです。古典的なMTLでは、dはdissolveと呼ばれる不透明度に相当し、d 1.0が完全不透明、d 0.0が完全透明です。一方、Trは一般に透過率として扱われ、Tr 0.0が不透明、Tr 1.0が透明という逆向きの実装が広く使われています。ただし、Trは読込ソフトによる対応差があるため、数式だけで決めつけず、実際のアップロード先で確認することが重要です。

画像で透明範囲を指定している場合は、白黒画像やアルファチャンネルの解釈も関係します。一般的な不透明度マップでは、明るい画素ほど不透明、暗い画素ほど透明として扱われます。しかし、画像のどのチャンネルを参照するか、カラー画像内のアルファを利用するか、別のmap_d画像を利用するかは、書き出し側と読込側で異なることがあります。本来の対象と背景がきれいに入れ替わっているときは、白黒の方向、アルファ値、反転設定を優先的に確認します。

点群由来のメッシュでは、薄い三角形や重複面が多数残る場合があります。透明度の値が正しくても、半透明面の描画順序、深度判定、両面表示、法線方向の影響によって、手前の面が消えたり、奥の面が濃く見えたりします。この症状は透明度反転に似ていますが、dやTrの値を反転するだけでは解消しません。

修正前には、症状を分類します。本来見える部分と消したい部分がほぼ完全に入れ替わるなら、dとTrの方向または透過画像の反転を疑います。モデル全体が均等に薄いなら、材質全体の不透明度と画像側のアルファが重複している可能性があります。視点を回したときだけ消えるなら、法線、裏面非表示、透明面の並び順を確認します。一部の材質だけが異常なら、材質名と画像参照の不一致が有力です。

材質設定1:dとTrの記述を整理する

MTLの透明度を確認するときは、最初にdとTrの意味を分けて考えます。dは不透明度に相当し、値が大きいほど見える方向です。完全不透明にする基本値はd 1.0、完全透明はd 0.0です。米国議会図書館のMTL解説でも、d 1.0は完全不透明、d 0.0は完全透明と整理されています。([The Library of Congress][1])

Trは多くの実装でTr = 1 - dの関係として扱われます。したがって、完全不透明に相当する一般的な記述はTr 0.0、完全透明はTr 1.0です。たとえば不透明度を0.3にしたい場合、対応する透過率は0.7になります。ただし、すべてのOBJ読込処理がTrを同じように扱うとは限らず、無視する実装や、最後に現れた値を優先する実装もあります。

最も避けたいのは、同じnewmtlブロックにdとTrを併記したまま、両者の優先順位を読込側へ委ねることです。たとえばd 1.0とTr 1.0を同じ材質へ記述すると、一方は完全不透明、もう一方は完全透明を示すため、読込先によって結果が変わり得ます。互換性を重視する場合は、アップロード先が確実に対応する一方だけを残します。一般にはdを基準とし、Trしか受け付けない環境では変換して検証する方法が安全です。

MTLを編集するときは、newmtlごとに設定範囲を確認します。MTLではnewmtlの行から次のnewmtlの直前までが一つの材質定義です。透明度を変更したつもりでも、別の材質ブロックへ記述していれば対象面には反映されません。材質数が多い場合は、材質名、dまたはTr、map_d、map_Kdを一つのまとまりとして確認します。

透明設定が不要な材質は、完全不透明へ統一します。たとえば地形面、躯体面、路面など、透過させる理由がない材質ではd 1.0を明示し、不要なTrやmap_dを削除します。過去の試験で残ったd 0.5などの値が意図せず使われていると、モデル全体が薄く見える原因になります。

画面上の項目名だけで判断するのも危険です。作成ソフトの画面に「透明度」と表示されていても、書き出されるMTLでは不透明度のdへ変換される場合があります。反対に、不透明度として設定した値がTrへ反転して保存されることもあります。小さな試験用OBJを作り、d 0.0、d 0.5、d 1.0の三種類を比較すると、アップロード先の解釈を確認できます。

材質全体の不透明度と画像側のアルファが同時に使われる場合、最終的な見え方が両方の影響を受けることがあります。たとえば材質全体が0.5、画像側の不透明度も0.5なら、実装によっては結果がさらに薄くなります。原因調査中は材質全体をd 1.0へ固定し、画像による透明度だけを確認します。その後、必要な場合に限って材質全体の半透明を追加すると、影響を分離しやすくなります。

材質設定2:透過画像とアルファチャンネルを確認する

点群OBJの一部だけを消す場合は、透過用の画像が使われることがあります。計測対象の周囲に残った背景を除去したり、フェンス、網、枝葉の隙間を表現したりする用途です。このとき、白黒の意味やアルファチャンネルの扱いが反対になると、本来残す領域と消す領域が入れ替わります。

MTLで透明度用画像を指定する代表的な記述はmap_dです。これは材質のdissolve、すなわち不透明度を画像で変化させるための指定です。古典的なMTLの例では、map_dがアルファ用テクスチャの参照として使われます。ただし、対応画像形式、使用チャンネル、オプションの解釈は読込実装によって差があります。([ウィキペディア][2])

透明度が明確に反転している場合は、本番画像をすぐ反転するのではなく、白と黒を二分した確認画像を使います。左半分を白、右半分を黒にした画像を一枚の面へ割り当て、アップロード後にどちら側が表示されるかを確認します。白側が見え、黒側が消えるなら、不透明度マップとして一般的な方向です。逆なら、読込側の反転指定、画像チャンネル、作成時の変換を調べます。

透過情報の持たせ方には、別の白黒画像をmap_dで参照する方法と、カラー画像のアルファチャンネルを読込側が利用する方法があります。後者は広く使われていますが、古典的なMTLのmap_Kd自体がカラー画像内のアルファ利用を一律に保証するわけではありません。あるビューアではPNGのアルファが有効でも、別のビューアではRGBだけが使われることがあります。そのため、アップロード先がどの方式を正式に受け付けるかを確認し、二つの方式を無計画に混在させないことが重要です。

画像の拡張子だけでアルファの有無を判断することも避けます。同じPNGでも、書き出し設定によってアルファチャンネルが存在しない場合があります。画像編集画面では背景が透明に見えていても、保存時に透明部分が白や黒へ統合されることがあります。アップロード用に保存した実ファイルを再度開き、アルファチャンネルが保持されているかを確認します。

map_dが参照する画像ファイル名と実ファイル名も照合します。拡張子の違い、大文字と小文字の違い、全角文字、空白、特殊記号、旧ファイル名の残存は、環境によって参照失敗の原因になります。すべての読込環境で全角文字や空白が使えないわけではありませんが、互換性を優先するなら半角英数字、ハイフン、アンダースコアを中心に統一すると切り分けが容易です。

画像の保存場所も重要です。MTLに作業端末固有の絶対パスが残っていると、クラウド側では同じ場所を参照できません。OBJ、MTL、画像を同じアップロード用フォルダへまとめ、MTLでは単純な相対参照を使います。フォルダ階層に対応しているサービスでも、圧縮後に階層が変わると参照できない場合があるため、実際のアップロード単位で確認します。

カラー画像のアルファとmap_dが同時に有効な場合は、透明度が二重に作用する可能性があります。調査時には、最初にカラー画像だけ、次にmap_dだけ、最後に両方という順で比較します。両方を使ったときだけ全体が薄くなるなら、重複適用または乗算処理が疑われます。

白と黒の中間にある灰色も確認します。半透明として処理される方式では、灰色は中間の不透明度になります。背景を完全に切り抜きたいのに輪郭へ灰色が残っていると、縁に膜、にじみ、黒い輪郭が出ることがあります。画像の縮小、補間、圧縮、アンチエイリアスによって、白黒境界へ意図しない中間値が生じることもあります。

完全な切り抜きが目的なら、後述する透過判定のしきい値と画像階調を合わせます。ただし、細い枝や網目では中間階調をすべて除去すると輪郭が欠ける場合があります。対象物の形状と表示距離を考慮し、滑らかな半透明を残すか、二値化して切り抜くかを決めます。

点群から生成したメッシュでは、計測範囲外の面を透明画像で隠している場合があります。この方法では面そのものはOBJ内に残るため、見えなくてもファイル容量、面数、描画負荷へ影響する可能性があります。不要な領域が明確なら、透明化だけに頼らず、メッシュ編集で面を削除する方法も検討します。

材質設定3:ブレンド方式と透過判定を使い分ける

透明表示には、画素ごとの不透明度に応じて背景と混ぜる半透明方式と、一定のしきい値で表示または非表示を決める切り抜き方式があります。これらはOBJやMTLだけで完全に決まるとは限らず、アップロード先のビューアや変換処理が最終的な描画方式を選ぶ場合があります。したがって、MTLの数値を整えるだけでなく、表示側の材質設定も確認します。

半透明方式は、ガラス、薄膜、水面、濃淡のある影など、連続的な透明表現に向いています。画素ごとのアルファ値を使って背景と混合するため、輪郭を滑らかにできます。一方、点群由来の複雑なメッシュでは、透明な三角形が大量に重なり、描画順序によって濃さや前後関係が不安定になることがあります。

視点を動かしたときに透明部分の濃さが変わる、奥の面が手前へ浮いて見える、特定角度で面が突然消えるという場合は、透明度の値そのものより、透明面の並び替えや深度判定の影響が疑われます。半透明面は、不透明面のように単純な前後判定だけで処理できないため、ビューアの実装差が現れやすい部分です。

切り抜き方式は、アルファ値がしきい値以上なら表示し、未満なら非表示にします。中間的な半透明を描かないため、背景除去、網目、葉、柵など、見える部分と消える部分を明確に分けたい用途に向いています。透明面の重なりによる並び順の問題を減らせる場合があり、点群メッシュの不要背景を消す用途では安定しやすいことがあります。

ただし、しきい値が高すぎると必要な輪郭まで消え、低すぎると背景の汚れや灰色の縁が残ります。画像内に中間階調が多いと、しきい値の変更だけで形が太く見えたり細く見えたりします。対象と背景が完全に入れ替わっているなら画像反転を疑い、輪郭だけ欠けるならしきい値を疑うという切り分けが有効です。

原因調査では、材質全体を完全不透明に固定し、透過画像だけを有効にします。その後、画像を外して材質全体のdだけを変えます。最後に半透明方式または切り抜き方式を指定します。この順序にすると、MTLの数値、画像、描画方式のどこで異常が発生したかを特定しやすくなります。

重複面も透明表示へ大きく影響します。ほぼ同じ位置に二枚の面があると、半透明が重なって一部だけ濃く見えることがあります。さらに面同士が近すぎると、距離や視点によってちらつくことがあります。これを透明度反転と誤認し、dを小さくすると、重なっていない正常部分まで薄くなるため注意が必要です。

視点を回したときだけ面が消える場合は、裏面非表示と法線方向を確認します。三角形には表裏があり、背面を描画しない設定では、法線の反対側から見た面が消えます。両面表示を有効にすれば一時的に見えることがありますが、裏側の面まで半透明で重なるため、濃さや描画負荷が増えることがあります。まず法線を整え、必要な材質に限って両面表示を使います。

半透明方式と切り抜き方式のどちらが常に正しいということではありません。不要背景を明確に除去したい点群OBJでは切り抜き方式、連続的な透明表現が必要な対象では半透明方式が適しています。目的に合わない方式を選ぶと、透明度が反転していなくても表示が破綻したように見えるため、用途から描画方式を決めます。

材質設定4:材質の割り当てと参照関係を統一する

OBJでは、mtllibでMTLファイルを参照し、usemtlで後続の面へ材質を割り当てます。MTLでは、newmtlに続く名前で材質を定義します。usemtlの名前とnewmtlの名前が一致しなければ、意図した材質が適用されません。MTLの基本構造と参照関係は、透明度を調整する前に確認すべき項目です。([The Library of Congress][1])

材質名が一致していない場合、アップロード先は既定材質を使う、材質なしとして扱う、直前の材質を引き継ぐなど、実装ごとに異なる動作をする可能性があります。不透明にする面へ透明材質が割り当てられると一部が消え、背景除去用の面へ不透明材質が割り当てられると板状に残ります。

複数のOBJを一つへ統合したデータでは、同名材質の衝突にも注意します。異なる設定を持つ二つの材質が同じ名前で出力されると、読込側で一方へ統合されたり、後から定義された値で上書きされたりする場合があります。材質名は用途ごとに分け、たとえば不透明、半透明、切り抜きが識別できるようにします。

OBJ内のmtllibが参照するMTLファイル名も確認します。実ファイルを改名したのにOBJの記述が古いままだと、材質定義全体が読み込まれません。その結果、透明度が無視されることもあれば、既定の見え方へ置き換わることもあります。

MTLから画像への参照も同様です。map_Kd、map_dなどが指すファイルが存在するか、拡張子まで一致しているか、圧縮ファイルへ同梱されているかを確認します。大文字と小文字を区別する環境では、Texture.pngとtexture.pngは別ファイルとして扱われます。

書き出しを繰り返した作業フォルダには、古いMTLや画像が残りやすくなります。OBJだけを更新しても、以前の画像や同名のMTLを一緒にアップロードすると、変更が反映されていないように見えることがあります。作業用フォルダとアップロード用フォルダを分け、アップロード用には現在使用するファイルだけを配置します。

圧縮ファイルでアップロードする場合は、圧縮後の内部構造を確認します。OBJ、MTL、画像が直下にある構成と、一段下のフォルダに入っている構成では、読込側の探索方法によって結果が変わる場合があります。サービスが指定するフォルダ構成があるなら、その条件を優先します。

点群からメッシュ化する過程では、穴埋め面、境界を閉じる面、計測範囲外の補間面が自動生成されることがあります。これらへ別の材質が割り当てられていると、主要部分だけを修正しても不具合が残ります。透明になっている面が必要な対象面なのか、不要な補間面なのかも確認します。

OBJへ頂点色を追加する方式は、一部のソフトが採用する拡張であり、すべてのOBJ読込処理が同じように対応するわけではありません。頂点色に相当する追加値が含まれるデータでは、画像やMTLより頂点色が優先される場合があります。特に頂点アルファは互換性が低いため、公開先の仕様が不明なら、透明度はMTLと対応画像へ集約するほうが切り分けやすくなります。

原因が分からない場合は、すべての面へ一つの不透明材質を割り当てた試験用OBJを作ります。それが正常に表示されれば、形状そのものではなく、材質の割り当て、透明度記述、画像参照のどこかに問題があると判断しやすくなります。その後、透明材質を一つずつ戻し、異常が再現する材質を特定します。

透明度反転と似た表示不具合を見分ける

点群OBJアップロード後に面が消えていても、必ずしも透明度が反転しているとは限りません。原因を誤ると、正常な材質まで変更し、別の不具合を増やす可能性があります。症状の現れ方から、透明度、法線、画像参照、重複面、描画方式を分けて確認します。

本来見える部分と背景部分が明確に入れ替わり、その境界が透過画像の形と一致する場合は、白黒またはアルファ値の反転が疑われます。形状全体ではなく画像の模様に沿って反転しているなら、OBJの面情報より画像の解釈を優先的に確認します。

モデル全体が均等に薄い場合は、材質全体のdが小さい、Trが大きい、カラー画像のアルファとmap_dが重複しているといった原因が考えられます。この場合、透過画像を白黒反転しても全体の薄さは解消しません。

視点を回したときだけ面が消える場合は、法線方向、裏面非表示、透明面の並び順が候補です。正面では見えるのに背面から見えない状態は、透明度より面の向きに関係する可能性が高くなります。

同じ場所で面がちらつく、距離によって見えたり消えたりする場合は、ほぼ同じ位置に面が重なっている可能性があります。重複面が深度判定で競合すると、透明度に関係なく表示が不安定になります。複数回のメッシュ生成結果を統合した場合や、穴埋め面が重なった場合は特に確認が必要です。

一部の材質だけが灰色や白色になり、透明にならない場合は、画像参照の失敗が考えられます。MTLは読み込まれていても、map_Kdやmap_dの画像が見つからなければ、材質色だけが表示される場合があります。ファイル名、経路、同梱漏れ、大文字小文字を確認します。

輪郭だけが黒く残る場合は、透明画素のRGB値、画像補間、縮小画像の生成が影響している可能性があります。透明画素の色が黒い画像を縮小すると、半透明の境界へ黒が混ざることがあります。これは透明度の方向ではなく、画像境界の色処理に関係する症状です。

遠距離で細い部分が消え、近距離では正常に見える場合は、縮小時に白黒境界が平均化され、切り抜きのしきい値を下回っている可能性があります。細い線や小さな穴を維持したい場合は、画像解像度、余白、しきい値、ミップマップ相当の縮小処理を確認します。

このように、面が見えないという結果だけで透明度反転と決めつけることはできません。全面が薄いのか、画像の白黒が逆なのか、角度で変わるのか、一部材質だけなのか、輪郭だけ異常なのかを整理すると、修正すべき設定を絞り込めます。

原因を段階的に切り分ける確認手順

透明度反転を効率よく直すには、一度に複数の設定を変更しないことが重要です。最初に元のOBJ、MTL、画像を複製し、検証専用フォルダを作ります。元データを直接上書きすると、どの変更で症状が変わったのか比較できなくなります。

最初にOBJのmtllibと実際のMTLファイル名を照合します。次に、OBJ内のusemtlとMTL内のnewmtlが一致しているかを確認します。この段階で参照が崩れていれば、d、Tr、map_dを修正しても意図した面へ反映されません。

次に、対象材質からTrとmap_dを一時的に外し、d 1.0だけを残します。この状態で形状が正常に表示されるなら、OBJの頂点と面はおおむね読み込まれており、透明度設定または画像参照に原因がある可能性が高まります。完全不透明でも面が消えるなら、法線、裏面非表示、面の欠損、材質未割り当てを確認します。

完全不透明で表示できたら、dだけを0.0、0.5、1.0へ変更し、アップロード先の反応を比較します。値の方向が想定どおりならdを採用します。dが無視され、Trだけが反映される環境では、Trを単独で試します。dとTrを同時に残さず、一方ずつ確認します。

材質全体の値が確認できたら、d 1.0へ戻し、map_dだけを有効にします。白黒が意図どおりに処理されるかを確認し、逆なら画像の階調、使用チャンネル、読込側の反転指定を調べます。本番画像が複雑な場合は、白黒を二分した確認画像を使います。

カラー画像にアルファがある場合は、カラー画像だけ、map_dだけ、両方の順に確認します。両方を有効にしたときだけ薄くなるなら、透明度の重複適用が疑われます。アップロード先がどちらの方式を正式に想定しているか確認し、採用する方式を一つに絞ります。

次に、半透明方式と切り抜き方式を比較します。背景除去が目的なら、切り抜き方式でしきい値を調整します。連続的な透明表現が必要なら半透明方式を使い、視点を変えたときの描画順序、重複面、深度判定を確認します。

複数材質を含む場合は、異常な材質だけを割り当てた小さなOBJを作ります。正常な材質と比較し、dまたはTr、画像参照、材質名、割り当て範囲の違いを調べます。大規模なOBJ全体を毎回アップロードするより、検証時間を短縮できます。

修正後は正面だけでなく、側面、背面、斜め、近距離、遠距離から表示します。透明材質は視点、面の重なり、縮小表示の影響を受けやすいため、一方向だけでは不具合を見落とす場合があります。

最後に、正常表示したOBJ、MTL、画像の組み合わせを一式として保存します。使用したdまたはTr、画像の白黒方向、map_dの有無、表示側の透過方式を記録すれば、次回の点群OBJアップロードでも同じ条件を再利用できます。

点群OBJアップロード前に行いたい予防策

透明度反転は、アップロード後に都度修正するより、書き出し前の確認項目として標準化したほうが効率的です。点群OBJを継続的に扱う業務では、材質設定、画像形式、ファイル構成、確認手順をそろえることで、担当者やソフトの違いによる不具合を減らせます。

最初に、透明度の基準を一つに決めます。標準環境ではdを使うのか、アップロード先の仕様に合わせてTrを使うのかを決め、同じ材質へ両方を記述しない運用にします。完全不透明、半透明、完全透明の試験値も決めておくと、書き出し結果を短時間で確認できます。

次に、透過画像の作成方法を統一します。白を不透明、黒を透明とするのか、カラー画像のアルファを使うのか、別のmap_d画像を使うのかを明確にします。同じ業務の中で複数方式が混在すると、画像差し替えやソフト変更の際に反転しやすくなります。

材質名と画像名には規則を設けます。不透明材質、半透明材質、切り抜き材質を区別できる名称にし、OBJ、MTL、画像の対応関係を明確にします。互換性を優先する場合は、半角英数字、ハイフン、アンダースコアを中心とし、大文字と小文字の使い分けも統一します。

アップロード用フォルダには、現在使用するファイルだけを保存します。古いMTL、試験用画像、同名の別画像が残っていると、どのファイルが読み込まれているか判断しにくくなります。作業用フォルダとアップロード用フォルダを分け、生成日時や版番号を管理すると混入を防ぎやすくなります。

大容量の本番OBJをアップロードする前に、小容量の確認用OBJを使う運用も有効です。透明材質を含む数枚の面だけを残し、dまたはTrの方向、map_d、画像参照、切り抜きしきい値を確認します。設定が確定してから本番へ反映すれば、長いアップロードを繰り返す回数を減らせます。

点群からメッシュを作成した後は、不要面や重複面も整理します。透明画像で隠すだけでは、表示されない面もデータ内に残ります。極端に引き伸ばされた三角形、計測範囲外の面、内部面、重複面を削除することで、透明表示の不安定さと描画負荷を抑えられる場合があります。

書き出し条件も共有します。材質を統合するか、画像を外部参照にするか、未使用材質を削除するか、相対パスを使うかによって、生成されるファイル構成が変わります。担当者ごとに書き出し方法が異なると、同じ元データでも透明度の挙動が変わります。

正常表示の基準も残します。正しく表示された画面、MTLの該当部分、透過画像の白黒方向、アップロード時のフォルダ構成を記録しておけば、新しいデータとの比較が容易です。「透明度がおかしい」という記録ではなく、「白い領域が透明になった」「全材質が薄くなった」「背面からだけ消えた」など、症状を具体的に残します。

大容量データを効率よく修正する進め方

点群OBJは、頂点数、面数、画像容量が大きくなりやすいデータです。透明度を一項目修正するたびに本番データを再書き出し、再圧縮し、再アップロードしていると確認に時間がかかります。原因調査では、不具合を再現できる最小構成を作ることが重要です。

まず、問題が発生している材質を特定し、その材質が割り当てられた数枚の面だけを抽出します。カラー画像や透過画像も、確認に必要な範囲だけを小さく切り出します。この確認用データで透明度を調整すれば、書き出し、圧縮、アップロード、表示待ちの時間を抑えられます。

確認用データでは、材質要素を一つずつ増やします。最初は単色の完全不透明材質だけで表示し、次にdまたはTrを追加し、その後にカラー画像を追加します。続いてmap_dを試し、最後に半透明方式、切り抜き方式、両面表示などの表示設定を加えます。この順序なら、どの段階で不具合が発生したかを明確にできます。

画像を修正するときも、複数の変更を同時に行わないようにします。白黒反転、アルファ修正、境界調整、画像名変更、圧縮形式変更を一度に行うと、どの変更が有効だったか分かりません。一つ変更するたびに結果を保存し、正常だった条件を記録します。

本番データへ反映する際は、確認用MTLの設定をコピーするだけでなく、材質名と画像参照が本番OBJに一致しているかを再確認します。確認用では一つの材質しかなくても、本番では似た名前の材質が複数存在し、別の画像を参照している場合があります。

アップロード直前には、圧縮ファイルの中身を開いて確認します。OBJが参照するMTL、MTLが参照するカラー画像と透過画像がすべて含まれているか、不要な旧ファイルが混入していないか、圧縮後にフォルダ階層が変わっていないかを確認します。

大容量データでは、材質や画像の整理が表示負荷の削減にもつながります。同じ設定と画像を参照する重複材質は、用途を確認したうえで統合できます。使用していない画像や材質は除外します。ただし、透明、不透明、切り抜きなど役割が異なる材質まで無理にまとめると、再び表示不具合が起きるため、機能単位で整理します。

修正履歴には、元ファイル名、変更した材質名、変更前後のdまたはTr、使用した画像、白黒反転の有無、表示側の透過方式を残します。大容量データでは再現試験の負担が大きいため、正常条件を再利用できる記録が特に重要です。

まとめ

点群OBJアップロード後に透明度が反転したように見える場合は、材質設定を四つの観点で確認します。

第一の設定は、MTLのdとTrです。dは一般に1.0が完全不透明、0.0が完全透明で、Trは多くの実装で逆方向です。同じ材質へ両方を矛盾した値で記述せず、アップロード先が対応する一方へ統一します。

第二の設定は、透過画像とアルファチャンネルです。map_dの白黒方向、カラー画像内のアルファ利用、画像保存時のアルファ保持、画像参照先を確認します。カラー画像のアルファと別の透過画像が二重に使われていないかも切り分けます。

第三の設定は、半透明方式と切り抜き方式です。背景除去や網目のように表示と非表示を明確に分ける用途では切り抜きが適し、連続的な透明表現には半透明が適します。視点によって濃さや前後関係が変わる場合は、数値反転ではなく、透明面の描画順序、重複面、深度判定、法線を確認します。

第四の設定は、材質の割り当てと参照関係です。OBJのmtllibとusemtl、MTLのnewmtl、map_Kdとmap_dの画像ファイル名を一致させます。古いMTLや画像、絶対パス、圧縮後の階層ずれがあると、正しい設定へ変更しても反映されないことがあります。

修正作業では、すべてを一度に変えず、完全不透明、材質全体の透明度、透過画像、描画方式の順で確認します。小さな試験用OBJを使えば、大容量データを何度もアップロードする負担を抑えながら原因を特定できます。

点群OBJを安定して活用するには、アップロード後の材質修正だけでなく、計測、点群生成、メッシュ化、画像作成、ファイル整理までを一連の工程として管理することが重要です。現場で取得した位置情報や点群を後工程へ円滑につなげる場合は、LRTK Phoneを活用した計測とデータ管理の流れも確認し、取得段階から扱いやすいデータを整えることが有効です。

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

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