Version: 2022.3
言語: 日本語
ライトマッピング - はじめに
指向性モード 

ライトマップパラメーターアセット

Lightmap Parameters Asset (ライトマップパラメーターアセット) には、Unity のライティング機能を制御する一群のパラメーターの値が含まれています。これらのアセットを使用すると、さまざまな状況で使用するために、ライティングの値のさまざまなセットを定義して保存できます。

ライトマップパラメーターアセットを利用すると、 さまざまなタイプのゲームオブジェクトや、異なるプラットフォームやシーン (例えば、屋内、または、屋外シーンなど) に応じて最適化されたプリセットを素早く作成できます。

ライトマップパラメーターアセットの作成

新しいライトマップパラメーターアセットを作成するには、Project ウィンドウ内で右クリックし、Create > New Parameters Asset を選択します。Unity は Project フォルダーにこれを保存します。

プロパティ

Project ウィンドウでライトマップパラメーターアセットをクリックすると、Inspector ウィンドウにそのアセットで定義した値が表示されます。パラメーターとその説明は下の表のとおりです。

Realtime GI

これらのパラメーターは、Enlighten リアルタイムグローバルイルミネーション を設定します。

レンダリングパイプライン全体での Enlighten リアルタイムグローバルイルミネーションのサポートの詳細については、レンダリングパイプライン機能の比較 を参照してください。

プロパティ 機能
Resolution この値は、Lighting ウィンドウの Scene タブ (Window > Rendering > Lighting > Scene) の Realtime Resolution の値をスケールし、ライトマップの最終的な解像度 (テクセル/単位距離) を示します。
Cluster Resolution 最終的なライトマップの解像度に対するクラスターの解像度 (ライトのバウンスが内部で計算されている解像度) の比。詳しくは、シーンビューの GI 視覚化 を参照してください。
Irradiance Budget この値は、ライトマップの各テクセルを照らすために使用される入射光のデータの精度を決定します。各テクセルのライティングは、テクセルの位置からシーンの “ビュー” をサンプリングすることによって得られます。放射照度の量が低い場合は、よりぼやけたサンプルになります。値を高くすると、サンプルはよりはっきりします。放射照度の量を上げると、ライティングは改善されますが、ランタイムのメモリ使用量が増加し、CPU の使用が増加する場合があります。
Irradiance Quality スライダーを使って、レイの数を定義します。そのレイはキャストし、指定した出力ライトマップのテクセルに影響するクラスターを計算するために使われます。値を大きくすると、ライトマップの見た目が向上しますが、Unity エディターの事前の計算時間が増加します。この値は、ランタイムのパフォーマンスには影響しません。
Modelling Tolerance この値は、ライトが通り抜けるメッシュジオメトリのすき間の最小サイズを制御します。環境内でライトがより小さなすき間を通り抜けるようにするには、この値を低くします。
Edge Stitching これを有効にすると、不要な視覚的アーティファクトを避けるために、ライトマップの UV チャートを継ぎ目なく結合します。
Is Transparent これを有効にすると、グローバルイルミネーションを計算している間、このオブジェクトは透明になります。後ろを向いたサーフェスはこの計算に何も影響を与えず、ライトはサーフェスを通過します。この設定は非可視の発光性のサーフェスを作成する際に役立ちます。
System Tag ライトマップテクスチャを同じライトマップアトラスにまとめた複数オブジェクトのグループを “システム” と呼んでいます。すべてのオブジェクトが 1 つのアトラスに適合しない場合、Unity は追加のシステムとそれに付随するアトラスを自動的に定義します。ただし、別のシステムを独自に定義する方が便利な場合があります (例えば、別々のルーム内のオブジェクトを、各ルームにつき 1 つのシステムにグループ分けする、など)。 System Tag 番号を変えると、強制的に新しいシステムとライトマップが作成されます。タグの値の数的順序はあまり関係ありません。

Baked GI

これらのパラメーターは ライトマッピング を設定します。

レンダーパイプライン全体のライトマップのサポートについては、レンダーパイプライン機能比較 を参照してください。

プロパティ 機能
Enlighten ベイクしたグローバルイルミネーション プログレッシブライトマッパー
Blur Radius ポストプロセスで直接光に適用されるブラーのフィルターの半径 (単位はテクセル) です。基本的に、この半径の範囲で隣接するテクセルが平均化されます。半径を大きくすると、よりぼやけた効果を与えます。ブラーのレベルを高くすると、視覚的なアーティファクトが低減されるだけでなく、影のエッジもソフトになります。 Blur Radius はプログレッシブライトマッパーでは使用できません。
Anti-aliasing Samples ライトマップのテクセルのサンプリングを行うときに使用するサブテクセル位置の数を決定します。ライトマップの品質を向上させ、エイリアシングに関連するアーティファクトを削減するためにスーパーサンプリングを使用するには、値を 1 以上に設定します。
•値 1 は、スーパーサンプリングを無効にします。
•値 2 - 8 は、2x2 スーパーサンプリングを提供します。デフォルト値は 8 で、ほとんどのエイリアシングアーティファクトが除去されます。
•9 - 256 の値は 4x4 のスーパーサンプリングを提供します。これらの値は、直接照明のギザギザしたエッジのようなアーティファクトを除去するために使用します。これは、ベイクしたシャドウを使用する場合に発生する可能性があります。

ノート: アンチエイリアシングのサンプル値が高いほど、より多くのメモリを使用します。つまり、大きなシーンで高いサンプル数を使用し、ライトマップテクスチャサイズが大きいと、ライトマップのベイクが完了しない可能性があります。
Direct Light Quality 直接光を評価するために使用されるレイの数。レイの数が多いほど、より正確なソフトシャドウを生成しやすくなりますが、ベイク時間が長くなります。 Direct Light Quality はプログレッシブライトマッパーを使用する場合は使用できません。
Backface Tolerance メッシュの構造が原因となって、ジオメトリの裏面がテクセルに表示されてしまう場合があります。裏面に照射するライトはあらゆるシーンで無意味です。そのため、このプロパティを使用して、そのテクセルが有効になるために必要な、ジオメトリの表面に照射するライトの割合のしきい値を選択することができます。無効なテクセルには、近隣のライトと同様の値が与えられます。Backface Tolerance (裏面照射の許容範囲) を低くすると、裏面から照射するライトが原因となる問題を解決できます。  Unity が有効と見なすためにテクセルに当たる正面向きジオメトリのサンプリングレイのパーセンテージを指定します。これにより、テクセルから投影されるレイの多く (テクセルがジオメトリ内にある場合など) が背面に当たる場合に、Unity がテクセルを無効にすることが可能になります。値が 1.0 の場合、例えばテクセルのレイのいずれかが背面に当たると、Unity はテクセルを無効と見なします。テクセルが無効な場合、Unity は周囲のテクセルから有効な値を複製してアーティファクトを防止します。この値を低くすると、背面サンプルによって発生するライティングの問題を解決できます。この値を調整するには、シーン ビュー描画モード の Texel Validity を使用します。
Pushoff モデリング単位で指定した値に基づいて、レイの原点を法線に沿ってジオメトリから遠ざけます。Unity はこの値をすべてのベイクしたライトマップに適用します。直接光、間接光、ベイクしたアンビエントオクルージョンに影響します。この設定を調整して、セルフオクルージョンとセルフシャドウイングのアーティファクトを減らします。
Baked Tag 特定の一揃いのオブジェクトをアトラスにグループ化します。システムタグと同様に、正確な数値は重要ではありません。Unity は、異なる Baked Tag 値を持つゲームオブジェクトを同じアトラスに配置することはありません。ただし、同じタグを持つオブジェクトが同じアトラスに配置される保証はありません。これは、そのタグを持つオブジェクトの数が多すぎて 1 つのアトラスに収まらない可能性があるためです。この例については、画像 A (後に記載) を参照してください。マルチシーンのベイク API を使用する場合は、Unity が自動的にグループ化するため、この値を設定する必要はありません。Baked Tag を使用して、Lock Atlas オプションの動作の一部を再現できます。詳細については、Baked Tags: 詳細 を参照してください。
Limit Lightmap Count Enlighten ベイクしたグローバルイルミネーションを使用するときは、Limit Lightmap Count は使用できません。 Unity が同じベイクドグローバルイルミネーション設定を持つゲームオブジェクトをまとめるために使用できるライトマップの数に制限を適用します。この制限を有効にすると、Max Lightmaps という関連設定が表示されます。この設定でライトマップの制限を決定します。Lightmapping Settings は、これらのライトマップのサイズを定義します。

Unity は、Anti-aliasing SamplesPushoffBaked TagBackface Tolerance の値が等しいゲームオブジェクトは、同じベイクドグローバルイルミネーション設定を持つと見なします。つまり、Unity は異なるライトマップパラメーターアセットに関連付けられたゲームオブジェクトをまとめる可能性があります。

ゲームオブジェクトを設定された数のライトマップにまとめるために、Unity は指定された数のライトマップにすべてが収まるまで UV レイアウトを縮小します。このプロセスにより、ライトマップの解像度が低下する可能性があります。

Baked Tags: Details

上の図は、同じシーンの 2 つのビューを示しています。

  1. 上:すべてのゲームオブジェクトが同じ Baked Tag を持つため、すべてが 1 つのアトラス内にあります。

  2. 下: 1 つのゲームオブジェクトに異なる Baked Tag が割り当てられているため、強制的に 2 つ目のライトマップにまとめられています。

Baked AO

これらのパラメーターはベイクしたアンビエントオクルージョンを設定します。

プロパティ 機能
Quality アンビエントオクルージョンを評価するときに発するレイの数。この数字が大きいほどベイクしたアンビエントオクルージョンの品質が向上しますが、ベイク時間も長くなります。
Anti-aliasing Samples アンビエントオクルージョンのアンチエイリアスを行うときに取得するサンプル数。サンプル数が多いほどアンビエントオクルージョンの品質が上がりますが、ベイク時間も長くかかります。

General GI

プロパティ 機能
Backface Tolerance 出力テクセルから発されたレイが表面に当たる割合。システムが有効なテクセルと認識するためには、この割合を満たす必要があります。テクセルから発したレイがあまり多く裏面にあたる場合は (テクセルがジオメトリの内部にある場合)、テクセルを無効にします。テクセルが無効の場合、ライティングシステムは近隣のテクセルから有効な値を複製し、予期しないアーティファクトを避けます。

例えば、Backface Tolerance が 0.0 の場合は、裏面しか見えない場合のみ、テクセルは拒否されます。1.0 の場合は、裏面に当たるレイがたった 1 つあるだけでも、レイを発するテクセルは拒否されます。

ライトマップパラメーターアセットの割り当て

シーン

ライトマップパラメーターアセットをシーン全体に割り当てるには、以下を行います。

  1. Lighting ウィンドウ を開きます (Window > Rendering > Lighting)。
  2. Scene タブを選択します。
  3. Lightmapping Settings に移動します。
  4. Lightmap Parameters ドロップダウンを使用して、デフォルトのライトマップパラメーターアセットを割り当てます。このドロップダウンには、利用可能なすべてのライトマップパラメーターアセットが表示されます。

ゲームオブジェクト

ライトマップパラメーターアセットをゲームオブジェクトに割り当てるには、ゲームオブジェクトにメッシュレンダラーか Terrain コンポーネントがアタッチされていることを確認します。

ライトマップパラメーターアセットを Mesh Renderer コンポーネントに割り当てるには、以下を行います。

  1. Inspector で、Mesh Renderer > Lighting の順に移動します。
  2. Contribute Global Illumination を有効にします。
  3. Mesh Renderer コンポーネントで、Lightmapping > Lightmap Parameters の順に移動します。
  4. メニューからオプションを選択します。 Scene Default Parameter を選択すると、シーン全体に割り当てられているのと同じライトマップパラメーターアセットを使用することができます。

ライトマップパラメーターアセットを Terrain コンポーネントに割り当てるには、以下を行います。

  1. Inspector で、Terrain > Terrain Settings > Lighting の順に移動します。
  2. Contribute Global Illumination を有効にします。
  3. Terrain Settings で、Lightmapping > Lightmap Parameters の順に移動します。
  4. メニューからオプションを選択します。 Scene Default Parameter を選択すると、シーン全体に割り当てられているのと同じライトマップパラメーターアセットを使用することができます。

2019–03–28 修正されたページ

2018–03–28 修正されたページ

Limit Lightmap Count は 2019.1 で追加NewIn20191

プログレッシブライトマッパーは 2018.1 で追加 NewIn20181

LightmapParameters

ライトマッピング - はじめに
指向性モード