Version: 2021.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;3] はスーパーサンプリングを無効にし、サンプル [4;8] は 2 倍のスーパーサンプリングを行い、サンプル [9;256] は 4 倍スーパーサンプリングを行います。これは主に、位置と法線のバッファに使用されるメモリ量に影響します (2 倍のスーパーサンプリングはメモリ量の 4 倍、4 倍は 16 倍のメモリ量を使用します)。
Direct Light Quality 直接光を評価するために使用されるレイの数。レイの数が多いほど、より正確なソフトシャドウを生成しやすくなりますが、ベイク時間が長くなります。 Direct Light Quality はプログレッシブライトマッパーを使用する場合は使用できません。
Backface Tolerance メッシュの構造が原因となって、ジオメトリの裏面がテクセルに表示されてしまう場合があります。裏面に照射するライトはあらゆるシーンで無意味です。そのため、このプロパティを使用して、そのテクセルが有効になるために必要な、ジオメトリの表面に照射するライトの割合のしきい値を選択することができます。無効なテクセルには、近隣のライトと同様の値が与えられます。Backface Tolerance (裏面照射の許容範囲) を低くすると、裏面から照射するライトが原因となる問題を解決できます。  出力テクセルから発されたレイが表面に当たる割合。システムが有効なテクセルと認識するためには、この割合を満たす必要があります。テクセルから発したレイがあまり多く裏面にあたる場合は (テクセルがジオメトリの内部にある場合)、テクセルを無効にします。テクセルが無効の場合、ライティングシステムは近隣のテクセルから有効な値を複製し、予期しないアーティファクトを避けます。例えば、Backface Tolerance が 0.0 の場合は、裏面しか見えない場合のみ、テクセルは拒否されます。1.0 の場合は、裏面に当たるレイがたった 1 つあるだけでも、レイを発するテクセルは拒否されます。Baked Texel Validity のシーンビューモードでは、あるケースでは有効 (緑) と無効 (赤) のテクセルが表示されます。シーンで片面しかないメッシュがあるときは、値を 0 にしてこの機能を無効にする方がよい場合もあります。これをうまく処理するために、両面のフラグを、後からエディターで加えることもできます。 
Pushoff モデリングユニットのレイをトレースし始める前に、サーフェスのジオメトリから押し離す距離。これは、すべてのベイクされたライトマップに適用されるので、直接光、間接光、アンビエントオクルージョンに影響します。Pushoff は不要なアンビエントオクルージョンや影を除くのに便利です。この設定を使うと、オブジェクトのサーフェスがそれ自体に影を落とし、明白なソースなしに小さなはん点のついた影が表面に現れる問題を解決できます。また、細かいディテールに対し正確にレイトレースを行なえるほど浮動小数点の精度が高くない場合に、巨大なオブジェクトで発生する不要なアーティファクトを除去するのに利用できます。  モデリングユニットで、レイの起点をジオメトリからレイトレーシングの法線に沿って押し離す量。これは、ベイクしたライトマップすべてに適用されるため、直接光、間接光、ベイクしたアンビエントオクルージョンに影響します。必要のないオクルージョンや影の削除に有用です。
Baked Tag 前述の System Tag プロパティと同様に、この番号を使用すると、特定の一揃いのオブジェクトを別のベイクしたライトマップにまとめることができます。システムタグと同様に、正確な数値は重要ではありません。Baked Tag 値が異なるオブジェクトは、同じアトラスに置かれることはありません。しかし、同じタグが付いたオブジェクトが同じアトラスになるという保証はありません。なぜなら、それらのオブジェクトが必ずしも 1 つのライトマップに収まるとは限らないからです (下の画像 A を参照)。マルチシーンベイクの API (BakeMultipleScenes) を使用する場合は、グループ化が自動的に行われるため、これを設定する必要はありません (Baked TagLock Atlas オプションで一部同様の動作をします)。詳細は、後述の Baked Tags: 詳細 を参照してください。
Limit Lightmap Count Enlighten ベイクしたグローバルイルミネーションを使用するときは、Limit Lightmap Count は使用できません。 Limit Lightmap Count は、ベイクしたグローバルイルミネーションの同じ設定でゲームオブジェクトをパックするときに、Unity が使用できるライトマップの最大数を適用します。Limit Lightmap Count を有効にすると、その下に Max Lightmaps という設定が表示されます。これを使って Unity が使用できるライトマップの最大数を設定します。

Unity は、Anti-aliasing SamplesPushoffBaked TagBackface Tolerance の値が等しい場合、ゲームオブジェクトの Baked Global Illumination 設定は同じであるとみなします。つまり、Unity は異なるライトマップパラメーターアセットに紐付けられたゲームオブジェクトを一緒にパックする場合があります。ゲームオブジェクトをパックするために、すべてのゲームオブジェクトが指定された数のライトマップに収まるまで UV レイアウトは徐々に縮小されます。Lightmapper Settings は、これらのライトマップのサイズを定義します。この処理により、ゲームオブジェクトのライトマップ解像度が低下する場合があります。

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

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