夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

Blenderで他のメッシュと交差関係にあるメッシュを可視化する

本日はBlenderモデリング枠です。

筆者は仕事でも趣味でもモデリングをしていますが、先日仕事で作ったモデルのFightingが発生しているモデルの改修依頼が来ました。

ZFightingとはUnityやBlender上で描画を行う際にメッシュが同じ座標に張られていることで描画がおかしくなってしまう問題です。

Unity上で発生したZFightingの例

ZFightingが発生する原因としてメッシュが張られている座標が同一であるほかにカメラの設定があります。

今回はBlenderで交差関係にあるメッシュを可視化してZFightingが発生しやすい箇所を把握できるようにします。

〇Blenderで交差関係にあるメッシュを可視化する。

今回は次のような家具を例に紹介します。

この家具は3つの棚を一つのオブジェクトとして統合しています。

今回の場合棚同士のつなぎ目の場所のメッシュが重なっています。

今回はわかりやすい例としていますが、多くの3Dモデルの場合は今回のように単純な重なりというわけではなく非常に複雑でわかりにくい場所に発生します。

こうしたメッシュを見つけるためにメッシュ分析を行うことができます。

メッシュ分析を使用するために編集モードの状態でビューポートオーバーレイを選択します。

メッシュ分析のチェックボックスにチェックを入れタイプを交差に指定します。

これによりメッシュとほかのメッシュが交差しているメッシュが赤く表示されます。

冒頭で紹介した棚同士が重なっている面も赤く表示されますので、Gキーで棚を移動させ赤表示が消えるまでずらします。

これによってメッシュが重なることによるZFightingが発生しやすい場所を把握して修正することができます。

 例えば次の部分では一見交差がないように見えても赤く交差されていると判定がされています。

対象の面を選択してSキー+Zキー+0で高さをそろえることで交差の判定が解消されます。

 つまり一見板のように平らになっているように見えても微妙に歪んていたことがわかります。

 メッシュ分析を行うことで紹介したようにモデルとして使用する際に起こりゆるエラーを予測して未然に修正することやすでに発生したトラブルを対処する際に素早く問題をチェックできます。