各ライトマップにはいくつかの チャート が含まれています。ランタイムに Unity はこれらのチャートをメッシュ面にマッピングし、チャートのライティングデータを使用して最終的な外観を計算します。GPU のサンプリングの仕組みにより、チャートのデータが互いに過剰に近接している場合は、1 つのチャートのデータによって他のチャート上に、にじみが生じる可能性があります。これは通常、エイリアシング、ピクセレーションなど意図しないアーティファクトが生じる原因となります。
ライトのにじみを避けるためには、チャート間に十分なスペースが必要です。GPU がライトマップをサンプリングすると、ライティングシステムはサンプリングされた点に最も近い 4 つのテクセルから最終的なサンプル値を計算します (バイリニアフィルタリングが使用されていると仮定)。これらの 4 つのテクセルはサンプリングされた点のバイリニアのネイバーと呼ばれます。チャートが近すぎると重なってしまいます、つまり、チャート内の点が、他のチャート内の近隣の点 (ネイバー) と重なります。下の画像では、白のピクセルはチャートのネイバーを示し、赤のピクセルは重なっているネイバーを示しています。
最適なチャートの配置と間隔の決定は、いくつかのパラメーター (ライトマップ解像度、メッシュ UV、インポーター設定など) に依存するため、難しい場合があります。このため、Unity にはこれらの問題を簡単に識別する機能があります。以下のセクションで概要を説明します。
重複を識別するには 3 つの方法があります。
Unity のコンソールに注目してください。Unity が重複する UV を検出すると、警告メッセージと影響を受けるゲームオブジェクトのリストを表示します。
Scene (シーン) ビューで UV Overlap 描画モードを使用します (詳細はシーンビューの GI ビジュアライゼーション を参照)。このモードを有効にすると、他のチャートのテクセルに近すぎるチャートテクセルに赤いハイライトが表示されます。これは、シーンビューでアーティファクトを発見し、UV の重複がアーティファクトの原因かどうかを素早く調べたい場合に特に便利です。
UV の重複を解決する方法は 1 つだけではありません。なぜなら、UV の重複を引き起こす原因は多岐にわたるからです。以下は最も一般的な解決策です。