マテリアルが重なっている部分のちらつき

基本のキューブを組み合わせて、画像のようなスタティックメッシュを作りました。
マテリアルスロットにマテリアルを追加すると、
キューブの重なっている部分で、マテリアルが重なってしまいチカチカと点滅してしまいます。
どうしてもこの形状にしたいのでキューブが重ならないようにはできません。
マテリアルに関するより高度なテクニックについてのメソッドはグーグルでたくさん見つけることができたのですが、あまりにも初歩的なこの質問を解決させるために有益な情報の発見が困難であり、私はいま困っています。
あなたのアドバイスにはすべて感謝します。

まず前提として、作ったものは作ったとおりにしかならない、ということを受け入れてください

Z-Fighting対策の基本は、Surfaceが同じ位置に重ならないように作ることです
同じ位置に重なるように作ってしまえば、Rendererはどちらが前になるのか判別できず、今回のような事象が起こります

現実に当てはめて考えてみましょう
紙を2枚用意します
その紙で今回のような重なる形を作ってみてください
必ずどちらかが上でどちらかが下になりますね?
現実では2枚の紙が溶け合って1つになる、ということはありません
そのあたりは3DCGでも同じです

3DCGでは仕組み上Polygonを同一の座標に置けてしまいますが、前後関係をきちんとしたいなら前後関係をきちんと作らねばなりません

どうしてもこの形状にしたいのでキューブが重ならないようにはできません

ということであれば、今あるその状態が正しい、ということになります


PixelDepthOffsetを適切に設定できれば、Polygonが重なっていても適切に前後関係を解決できる可能性があります
このパラメータはそのSurfaceのPixelを画面奥にずらす事ができ、今回のようなPolygonの重なりの解消に使われることがあります
ただ見たところ、Materialも同一のようですので、PixelDepthOffsetを適切に設定するには、何らかの追加のMaskか、奥にずらす方のMaterialを別に分ける必要があります
このあたりはあなたの言うところの 高度なテクニック に分類されるものであり、理解せずただ設定するだけでいい感じになる、というものではありません

ですので、基本的にはMeshレベルからの根本解決をすることをおすすめします

1 Like

とても分かりやすい説明に感謝します。よく理解できました。
“PixelDepthOffset” や “Z-Fighting” という単語を知らなかったので、このあたりについて研究してみます。とりあえず、マイナスのジオメトリで不要な部分を削ってピッタリくっつけるなどして解決してみたいと思います。