教育事業部の事業内容 演劇、音楽のタレント並びに作詞家、作曲家、編曲家等アーティストの育成及びマネージメント、コンピュータ教室の経営等を行っています。
教育事業 パルテア

〜Unity Graphics Lighting ライトマップの UV オーバーラップを修正〜 #ゲーム制作 #unity2d #unity3d #graphics #lighting

ライトマップの UV オーバーラップを修正

各ライトマップには多数のチャートが含まれています。実行時に、Unity はこれらのチャートをメッシュ面にマッピングし、チャートの照明データを使用して最終的な外観を計算します。 GPU サンプリングの仕組みにより、あるグラフが互いに近すぎると、あるグラフのデータが別のグラフににじみ出る可能性があります。これにより通常、エイリアシングやピクセレーションなどの意図しないアーティファクトが発生します。

チャートのにじみによるグラフィックアーティファクトの例

軽いにじみを避けるために、チャート間に十分なスペースが必要です。 GPU がライトマップをサンプリングすると、ライティング システムは、サンプリングされたポイントに最も近い 4 つのテクセルから最終サンプル値を計算します (双線形フィルタリングが使用されていると仮定)。これら 4 つのテクセルは、サンプリングされた点の双線形「近傍」と呼ばれます。グラフが重なっている場合、つまり、グラフ内の任意の点の近傍が別のグラフ内の任意の点の近傍と重なっている場合、それらは互いに近づきすぎています。下の画像では、白いピクセルはチャートの近傍を示し、赤いピクセルは重なり合う近傍を示します。

赤いピクセルは、グラフの近傍が重なっていることを示します

最適なチャートの配置と間隔を決定することは、いくつかのパラメーター (ライトマップ解像度、メッシュ UV、インポーター設定など) に依存するため、難しい場合があります。このため、Unity は、次のセクションで説明するように、これらの問題を簡単に特定する機能を提供します。

識別

重複を特定するには 3 つの方法があります。

Unity のコンソールに注目してください。 Unity が重複する UV を検出すると、影響を受けるゲームオブジェクトのリストを含む警告メッセージを出力します。
シーン ビューで UV オーバーラップ描画モードを使用します (詳細については、シーン ビューの GI ビジュアライゼーションを参照してください)。このモードを有効にすると、Unity は他のチャートのテクセルに近すぎるチャート テクセルに赤いハイライトを追加します。これは、シーン ビューでアーティファクトを発見し、UV の重なりが原因かどうかをすぐに調べたい場合に特に便利です。

UV オーバーラップ描画モードを使用したシーン ビュー (左上のドロップダウンを参照)

ベイク処理されたライトマップのプレビューを使用します。ゲームオブジェクトを選択し、Lighting ウィンドウに移動して、Baked Lightmaps タブを選択します。ハイライト表示されたライトマップをダブルクリックし、プレビュー ウィンドウに移動して、ベイク処理された UV オーバーラップを選択します (右上隅のドロップダウンを参照)。プレビュー ウィンドウは、このビュー内で問題のあるテクセルを赤く色付けします。

Lighting ウィンドウの Baked Lightmaps タブの Baked Lightmaps プレビュー

ソリューション

UV の重複の原因は非常に多くあるため、単一の解決策はありません。考慮すべき最も一般的な解決策は次のとおりです。

ソリューション

UV の重複の原因は非常に多くあるため、単一の解決策はありません。考慮すべき最も一般的な解決策は次のとおりです。

ライトマップ UV を自分で提供する場合は、モデリング パッケージを使用してマージンを追加します。
Unity がモデルのライトマップ UV を自動的に生成する場合は、Unity にパック マージンを増やすように指示できます。これを行う最も簡単な方法は、マージン方法を計算に設定し、適切な最小ライトマップ解像度と最小オブジェクト スケールを設定することです。マージン方法を手動に設定したい場合は、パック マージン値を直接調整できます。これらの設定の詳細については、ライトマッピング UV の生成に関するドキュメントを参照してください。
ライトマップ全体の解像度を上げます。これにより、チャート間のピクセル数が増加し、にじみの可能性が減ります。欠点は、ライトマップが大きくなりすぎる可能性があることです。これは、ライトマッパー設定の照明タブで行うことができます。
単一のゲームオブジェクトの解像度を上げます。これにより、重複する UV を持つゲームオブジェクトのみのライトマップ解像度を上げることができます。可能性は低いですが、これにより olightmap サイズが大きくなる可能性もあります。ライトマップ設定の下のメッシュ レンダラ内でゲームオブジェクトのライトマップ解像度を変更できます。

以前と同じメッシュですが、出血アーティファクトはありません

    unity

  • 日時:// ~ //
  • 名称:
  • 場所:
  • 料金:¥0 (消費税込)