Screen Space Global Illumination
Screen Space Global Illumination (SSGI、スクリーンスペースグローバルイルミネーション) オーバーライドは、スクリーンの深度とカラーバッファを使ってディフューズライトのバウンスを計算するために使う、HD レンダーパイプライン (High Definition Render Pipeline、HDRP) の機能です。
HDRP はこのオーバーライドの上に レイトレースによるグローバルイルミネーション (RTGI) を実装します。つまり、Inspector で表示されるプロパティーは、レイトレーシングが有効であるか無効であるかに応じて変化するということです。
SSGI と RTGI はすべての ライトマップ および ライトプローブ データを完全に置き換えます。このオーバーライドを有効にすると、Volume (ボリューム) はカメラ、ライトプローブ、そしてアンビエントプローブに影響を与え、ゲームオブジェクトに照明を当てるのを停止します。
スクリーンスペースグローバルイルミネーションの有効化
まずプロジェクトに対して有効にしてから、Cameras でも有効にして、シーンでこの機能を使います。プロジェクト内で機能を有効にするには、HDRP Asset を使い、Cameras で有効化するには、フレーム設定 を使います。すべての Cameras に対して機能を有効にするには、Default Frame Settings を利用し、特定の Cameras に対して機能を有効にするには、各 Camera の個別 Frame Settings をオーバーライドします。
この機能に関して、 HDRP アセットで有効化するプロパティーは Lighting > Screen Space Global Illumination です。 フレーム設定で有効化するプロパティーは Lighting > Screen Space Global Illumination です。
スクリーンスペースグローバルイルミネーションの使用
HDRP は Volume フレームワークを使って SSGI を計算するため、SSGI プロパティーを有効にし変更するには、シーンで Screen Space Global Illumination オーバーライドを Volume 追加しなければなりません。Screen Space Global Illumination を Volume に追加する手順は以下の通りです。
- シーンまたは Hierarchy ビューで、Volume コンポーネントを含むゲームオブジェクトを選択し、Inspector で表示します。
- Inspector で Add Override > Lighting へ行き、Screen Space Global Illumination をクリックします。 これで HDRP は Volume が影響を与えるすべてのカメラに SSGI を計算します。
API
ランタイム中このオーバーライドにアクセスし制御するためには、Volume スクリプティング API を使用します。Volume システムの仕組みにより、プロパティーは標準 Unity コンポーネントとは異なる方法で編集されます。また、各プロパティーに overrideState があるなど、他にも注意する点があります。これは Volume システムが、設定したプロパティー値と Volume Profile に保存されているデフォルト値のうち、どちらを使うかを指示します。API を正しい利用法についての詳細は、 Volume スクリプティング API を参照してください。
プロパティー
Volume コンポーネントのオーバーライドのプロパティーを編集するには、プロパティーの左にあるチェックボックスを有効にします。これにより HDRP も Volume コンポーネントに対して、デフォルト値ではなく特定されたプロパティー値を使うことになります。チェックボックスを無効にすると、HDRP は設定されたプロパティーを無視し、Volume のデフォルト値を代わりに使います。
Inspector で表示されるプロパティーは、エフェクトにレイトレーシングを有効化するかしないかによって、変化します。
レイトレーシングを使わずにスクリーンスペースグローバルイルミネーションを代用するには、Inspector で Ray Tracing を無効にして スクリーンスペース でプロパティーリストを参照します。
レイトレーシングを使う場合は、Inspector で Ray Tracing を有効にし、Ray-traced でプロパティーリストを確認します。
Screen-space
プロパティー | 説明 |
---|---|
Enable | HDRP がこのエフェクトの Volume が影響を与えるカメラに SSGI を処理するかを示します。 |
Ray Tracing | HDRP がレイトレーシングを使ってグローバルイルミネーションを計算するかを示します。このプロパティーを有効にすると、このボリュームオーバーライドの実装を完全に変更し、レイトレースによるグローバルイルミネーションを制御する新しいプロパティーを展開します。 レイトレースによるグローバルイルミネーションに関する情報は、レイトレースによるグローバルイルミネーション を参照してください。 レイトレースによるグローバルイルミネーションを制御するプロパティーに関する情報は、下の Ray-traced プロパティーセクションを参照してください。 |
Quality | エフェクトの全体的な品質を特定します。品質が高いほど、エフェクトを処理する際のリソース負荷が大きくなります。 |
Full Resolution | HDRP がフル解像度で SSGI を計算するかを切り替えます。 |
Ray Steps | SSGI を解散するために使う、レイステップの数です。これをより高い値に設定すると、エフェクトの質が向上しますが、処理により大きなリソース負荷がかかります。 |
Filter Radius | レイマーチ後にエフェクトを滑らかにするために使う、フィルターのサイズです。値が高いほど、よりぼやけた結果になり、よりリソース負荷がかかります。 |
Depth Tolerance | スライダーを使って、画面のゲームオブジェクトの深度と深度バッファを比較する際の許容範囲を制御します。SSR アルゴリズムは薄いゲームオブジェクトと厚いゲームオブジェクトの区別がつかないため、このプロパティーはゲームオブジェクトの背後の光線をトレースするのに役に立ちます。アルゴリズムはこのプロパティーをすべてのゲームオブジェクトに均等に適用します。 |
Ray-traced
プロパティー | 説明 |
---|---|
Ray Tracing | これを有効にすると、HDRP はレイトレーシングを使って間接ディフューズライトを評価します。これにより、追加のプロパティーが利用できるようになり、レイトレースによるグローバルイルミネーションの品質を調整できます。 |
LayerMask | HDRP がレイトレーシングによるエフェクトをプロセスするレイヤーを定義します。 |
Mode | HDRP が Performance または Quality モードでエフェクトを評価するかを定義します。 このプロパティーは、HDRP アセットで Supported Ray Tracing Mode を Both に設定したときのみ表示されます。 |
Quality | HDRP が次の入子型プロパティーの値を追加するために使うプリセットを特定します。オプションは以下の通りです。 • Low (低): 品質よりもパフォーマンス重視のプリセットです。 • Medium (中): 品質とパフォーマンスのバランスが取れたプリセットです。 • High (高): パフォーマンスよりも品質重視のプリセットです。 • Custom (カスタム): 各プロパティーを個別にオーバーライドできます。 このプロパティーは Mode を Performance に設定したときのみ表示されます。 |
Max Ray Length | 光線の最大長を制御します。この値が高いほど、レイトレースによるグローバルイルミネーションのリソース負荷がより大きくかかります。 |
Clamp Value | HDRP が事前展開された値を固定するために使うしきい値を制御する値を設定します。値の範囲を減少させ、グローバルイルミネーションがより安定してノイズ除去するようになりますが、品質は低下します。 |
Full Resolution | この機能を有効にすると、ピクセル、フレームにつき 1 つの光線へとレイバジェットを増加させます。この機能を無効にすると、4 ピクセル、フレームにつき 1 つの光線へとレイバジェットを減少させます。 このプロパティーは Mode を Performance に設定したときのみ表示されます。 |
Upscale Radius | HDRP が GI をビルドするために使う、アップスケーラーの半径を制御します。半径が大きいほど、HDRP はより多くの周囲を使って GI をビルドし、品質が向上します。 このプロパティーは Mode を Performance に設定したときのみ表示されます。 |
Sample Count | ピクセルごと、フレームごとの光線数を制御します。この値を増やすと、実行時間を直線的に増加させます。 このプロパティーは Mode を Quality に設定したときのみ表示されます。 |
Bounce Count | グローバルイルミネーションレイがバウンスできる数を制御します。この値を増やすと、実行時間を指数関数的に増加させます。 このプロパティーは Mode を Quality に設定したときのみ表示されます。 |
Denoise | 有効にすると HDRP がレイトレースによるグローバルイルミネーションからノイズを除去するために使う、時空間フィルターを有効にします。 |
- Half Resolution Denoiser | この機能を有効にすると、時空間フィルターを半解像度で評価します。ノイズ除去のリソース負荷を軽減しますが、品質が低下します。 |
- Denoiser Radius | 時空間フィルターの半径を設定します。 |
- Second Denoiser Pass | この機能を有効にすると、2番目のノイズ除去パスを処理します。エフェクトからノイズを除去するのに役立ちます。 |
制限
レイトレースによるグローバルイルミネーション
現在、HDRP におけるレイトレーシングは デカール をサポートしません。つまり、レイトレースによるグローバルイルミネーションは、シーンでデカールに影響を与えません。リフレクションプローブ をレンダリングする際、スクリーンスペースグローバルイルミネーションはサポートされません。