Version: Unity 6.0 (6000.0)
言語 : 日本語
ライトマップ UV の確認
Inspector の Model Import Settings ウィンドウにあるライトマップ UV 設定のリファレンス

自動生成されたライトマップ UV のトラブルシューティング

パックマージン

フィルタリングを可能にするために、ライトマップは、チャート境界近くのライティング情報 (単位はテクセル) を含んでいます。そのため、常にチャート間にいくらかのマージンを加えて、ライトマップを適用するときにライトのにじみを回避します。

ライトマップの解像度は、ライトマップのテクセル解像度を定義します。ライトマッパーは、ライトマップ内の一部のチャートテクセルを広げてエッジが黒くならないようにします。そのため、ライトのにじみが発生しないように、メッシュの UV チャートは互いに 2 テクセル以上の間隔を空ける必要があります。Pack Margin 設定を使用すると、ジオメトリの UV チャート間に十分なマージンを確保できます。

ライトマップの UV 空間では、UV オーバーラップや意図しないライトのにじみを避けるために、チャート間に 2 テクセル以上のパディングが必要です。この画像では、黒いスペースはチャート間のスペースを表します。

ライトマップの最小解像度とオブジェクトの最小スケール

UV チャートをあまり近づけて配置すると、最終的なライトマップで 隣り合うチャートにテクセルのにじみ が発生することがあります。また、チャートの配置が互いに遠すぎると、メモリが無駄になります。オブジェクトの理想的なパックマージンは、そのオブジェクトに割り当てられているライトマップのテクセル数によって異なります。

Unity がメッシュレンダラーに使用するテクセル数は、MeshRenderer のライトマップ解像度と Transform のスケールに依存します。適切なマージンを計算するために、Unity はこれらのプロパティの予想される最小値を知る必要があります。

MeshRenderer のライトマップ解像度は、MeshRenderer が表示されるシーンの Lighting Settings アセットLightmap Resolution プロパティと、MeshRendererScale in Lightmap プロパティの組み合わせで決まります。つまり、同じ MeshRenderer であっても、シーンによってライトマップの解像度が異なる場合があります。

Inspector を使って、特定のシーンのメッシュレンダラーのライトマップの解像度を見ることができます。

  1. シーンビューまたは Hierarchy で、MeshRenderer コンポーネントを持つゲームオブジェクトを選択します。
  2. Inspector で、MeshRenderer コンポーネントの Lightmapping セクションに移動します。
  3. Baked Lightmap の折りたたみ部分を展開します。メッシュレンダラーのライトマップ解像度は Lightmap Resolution というラベルで表示され、ベイクしたライトマップ内の Transform のスケールは Lightmap Object Scale というラベルで表示されます。

角度の歪み

以下のスクリーンショットは解像度が同じですが、UV が異なります。最初の画像の Angle Error は高く設定されており、結果に意図しないアーティファクトが発生しています。2 番目の画像ではデフォルトの Angle Error (8%) が設定されています。メッシュがより多くの三角形を持つと、角度の歪みにより形状が大きく歪んでしまう可能性があります。

エリアの歪み

以下の画像では、同じパラメーターを持つ 2 つのスポットライトがシリンダーの両側を照らしています。シリンダーの右側は Area Error の値が高いため、三角形が歪んで解像度が低くなり、ライトにアーティファクトが発生しています。

ライトマップ UV の確認
Inspector の Model Import Settings ウィンドウにあるライトマップ UV 設定のリファレンス
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961