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

Lightmap Parameters アセット

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

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

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

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

プロパティ

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

Realtime GI

これらのパラメーターは Enlighten を使用したリアルタイムグローバルイルミネーション (非推奨) を設定します。リアルタイムグローバルイルミネーションは HD レンダーパイプライン (HDRP) やユニバーサルレンダーパイプライン (URP) ではサポートされません。

プロパティ 機能
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 は非推奨で、間もなく Unity から排除されます。詳細については、Unity ブログ を参照してください。

プロパティ 機能
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: 詳細

上の図は、同じシーンの 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 つあるだけでも、レイを発するテクセルは拒否されます。

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

シーン

To assign a Lightmap Parameters Asset to the whole Scene, open the Lighting window (Window > Rendering > Lighting), click the Scene tab, and navigate to the General GI settings.

Default Parameters ドロップダウンを使ってデフォルトのライトマップパラメーターアセットを割り当てます。このドロップダウンリストには使用可能なライトマップパラメーターアセットすべてが含まれています。

ゲームオブジェクト

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

ライトマップパラメーターアセットをメッシュレンダラーに割り当てるには、コンポーネントの Contribute GI チェックボックスにチェックを入れ、Lightmap Settings の下の Lightmap Parameters からオプションを選択します。 Default scene parameter を選択すると、シーン全体に割り当てられたライトマップパラメーターアセットと同じものが使用されます。

ライトマップパラメーターアセットを Terrain に割り当てるには、Terrain の Contribute GI チェックボックスをチェックし、Advanced Parameters からオプションを選択します。シーン全体に割り当てられた同じライトマップパラメーターアセットと同じものを使用するには、Default scene parameters を選択します。


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

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

Limit Lightmap Count は 2019.1 で追加NewIn20191

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

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