Fog
HD レンダーパイプライン (High Definition Render Pipeline、HDRP) は指数関数的コンポーネントから構成される、マルチレイヤーの Fog (フォグ) を実装します。その密度はカメラからの距離および HDRP でライトとフォグの相互作用を現実的にシミュレーションする指数関数的フォグに任意のボリュメトリックコンポーネントを追加できる高さによって異なり、物理的にもっともらしい輝きや、雲や樹木などの中央の隙間から漏れる光の柱である、光芒のレンダリングを実現します。
Fog の使用
Fog は Volume フレームワークを使うため、Fog プロパティーを有効化し変更するには、Fog オーバーライドを Volume に追加しなければなりません。Volume に Fog を追加する手順は以下の通りです。
- シーンまたは Hierarchy ビューで、Volume コンポーネントを含むゲームオブジェクトを選択し、Inspector で表示します。
- Inspector で Add Override > Fog へ行き、Fog をクリックします。
Fog オーバーライドを追加したら、オーバーライド自体の中で有効にしなければなりません。オーバーライドで Enable プロパティーにチェックマークを入れます。これで HDRP は Volume が影響を与えるすべてのカメラに対して Fog をレンダリングします。
この時点で、シーンにはグローバルフォグが含まれます。ただし、エフェクトは必ずしもユーザーのニーズに沿っているとは限りません。デフォルトプロパティーを独自の値でオーバーライドするためには、 Customizing Global Fog セクションの手順に従ってください。
HDRP は錐台のボリュメトリックセクションにマッピングされた 3D グリッドで、ボリュメトリックライトを評価します。グリッドの解像度はかなり低いため (1080p ではデフォルトの品質設定 240x135x64 を使用)、錐台の面積をできるだけ小さくして高品質を維持することが重要です。Depth Extent パラメーターを調整し、ボリュメトリックフォグにカメラの錐台と相対的な最大範囲を定義します。
API
ランタイム中このオーバーライドにアクセスし制御するためには、Volume スクリプティング API を使用します。Volume システムの仕組みにより、プロパティーは標準 Unity コンポーネントとは異なる方法で編集されます。また、各プロパティーに overrideState があるなど、他にも注意する点があります。これは Volume システムが、設定したプロパティー値と Volume Profile に保存されているデフォルト値のうち、どちらを使うかを指示します。API を正しい利用法についての詳細は、 Volume スクリプティング API を参照してください。
グローバルフォグのカスタマイズ
最高のパフォーマンスと品質を供給するために、ローカルの Fog ではなく、グローバルボリュメトリックの Fog を使います。
グローバルフォグは 2 つの論理的コンポーネントを持つ、高さフォグです。
- Base Height よりもカメラに近い距離にある領域は、定数 (均質) フォグです
- Base Height よりもカメラから遠い距離にある領域は、指数関数的フォグです。
アクティブな Volume の Fog オーバーライドは、グローバルフォグの外観を制御します。2 つの主要プロパティーが含まれており、デフォルト密度をオーバーライドするために使うことができます。
- Fog Attenuation Distance: フォグのグローバル密度を制御します。Controls the global density of the fog.
- Maximum Height: 高さで密度フォールオフを制御します。地面の近くでより高い密度を、そして高いエリアでより低い密度を実現できます。
プロパティー
Volume コンポーネントのオーバーライドのプロパティーを編集するには、プロパティーの左にあるチェックボックスを有効にします。これにより HDRP も Volume コンポーネントに対して、デフォルト値ではなく特定されたプロパティー値を使うことになります。チェックボックスを無効にすると、HDRP は設定されたプロパティーを無視し、Volume のデフォルト値を代わりに使います。
プロパティー | 機能 |
---|---|
Enable | フォグを有効化します。 |
Fog Attenuation Distance | フォグのベースで密度を制御し、フォグを通してどれくらい先まで見えるかをメートル単位で決定します。この距離でフォグは、63% の背景ライトを吸収および散乱させています。 |
Base Height | 定数 (同質) フォグと指数関数フォグの間の境界の高さです。 |
Maximum Height | ハイトフォグのフォールオフ率をメートル単位で制御します。値が高いほど、フォグは垂直に伸縮します。この高さでは、フォールオフは初期のベース密度を 63% 減少させます。 |
Max Fog Distance | フォグをスカイボックスまたは背景に適用する際に距離 (メートル単位) を制御します。さらに遠くのフォグの範囲も決定します。最高の結果を得るためには、クリップ面にカメラの遠値よりも大きな値を設定します。そうしないと、シーンのゲームオブジェクトのフォグと、スカイボックスのフォグの間で差異が出てしまいます。カメラの遠クリップ面は平らですが、HDRP はカメラ周辺のスフィア内にフォグを適用します。 |
Color Mode | ドロップダウンから、HDRP がフォグの色を計算するために使うモードを選択します。 • Sky Color: HDRP はスカイキューブマップとミップマップからサンプルしたカラーでフォグを色づけます。 • Constant Color: HDRP はこのオプションを選択した際に表示される Constant Color フィールドで手動設定したカラーでフォグを色づけます。 |
- Tint | Sky Color で乗算された HDR カラーです。 このプロパティーは Color Mode ドロップダウンから Sky Color を選択したときのみ表示されます。 |
- Mip Fog Near | HDRP がフォグカラーに最低解像度ミップマップのサンプリングを停止する、カメラからの距離 (メートル単位) です。 このプロパティーは Color Mode ドロップダウンから Sky Color を選択したときのみ表示されます。 |
- Mip Fog Far | HDRP がフォグカラーに最高解像度ミップマップのサンプリングを開始する、カメラからの距離 (メートル単位) です。 このプロパティーは Color Mode ドロップダウンから Sky Color を選択したときのみ表示されます。 |
- Mip Fog Max Mip | スライダーを使って、HDRP がミップフォグに使う最大ミップマップを設定します。HDRP が Mip Fog Far よりも大きい距離をサンプルするミップマップを定義します。 このプロパティーは Color Mode ドロップダウンから Sky Color を選択したときのみ表示されます。 |
- Constant Color | カラーピッカーを使ってフォグの色を選択します。 このプロパティーは Color Mode ドロップダウンから Constant Color を選択したときのみ表示されます。 |
Volumetric Fog | HDRP がボリュメトリックフォグを計算するかを示します。 |
- Albedo | ボリュメトリックフォグの色です。ボリュメトリックフォグはライティングに色付けするため、フォグはこの色にライトを散乱させます。フォグの背後または内部のライトから発せられるライティングのみに色を付けます。つまり、フォグの背後または内部のゲームオブジェクトから反射するライティングには色付けせず、反射光はフォグ密度が増すと薄暗くなるのみです。例えば赤い アルベド フォグを通して白い壁にライトを照らすと、フォグは赤く見えます。白い壁にライトを照らしフォグの反対側から見ると、フォグはライトを暗くしますが、赤くは色づけません。 |
- Ambient Light Probe Dimmer | 空が生成するグローバル環境光プローブの強度を薄暗くする量です。値が 0 の場合はライトプローブを薄暗くせず、値が 1 の場合はライトプローブを完全に薄暗くします。 |
- Volumetric Fog Distance | 錐台のボリュメトリックフォグセクションが終了するカメラからの距離 (メートル単位) です。 |
- Denoising Mode | ボリュメトリックフォグに使用するノイズ除去の技法です。オプションは以下の通りです。 • None (なし): ノイズ除去を適用しません。 • Reprojection (再投影): 静的ライティングに非常に効果的なノイズ除去技法ですが、極動的なライティングには深刻なゴースティングを引き起こす場合があります。 • Gaussian (ガウス分布): 動的ライティングに対して Reprojection よりも優秀なノイズ除去技法です。 • Both (両方): Reprojection と Gaussian 技法の両方を適用します。両方の技法を使うことで、品質の高い結果が得られますが、エフェクトのリソース負荷が極めて大きくなります。 |
- Slice Distribution Uniformity | カメラのフォワード軸に沿ったスライスの分布均等性です。HDRP は複数のカメラからの距離でボリュメトリックフォグをサンプルします。これらのサンプルエリアはそれぞれ、スライスと呼ばれます。値が 0 の場合はスライスを指数関数敵に分布させ (スライス間の距離はカメラからの距離とともに増加します)、カメラの付近では精密性が増し、遠くでは低下します。値が 1 の場合は均等な分布となり、カメラからの距離にかかわらず、一定の精密性が保たれます。 |
- Quality | HDRP が次の入子型プロパティーの値を追加するために使うプリセットを特定します。オプションは以下の通りです。 • Low (低): 品質よりもパフォーマンス重視のプリセットです。 • Medium (中): 品質とパフォーマンスのバランスが取れたプリセットです。 • High (高): パフォーマンスよりも品質重視のプリセットです。 • Custom (カスタム): 各プロパティーを個別にオーバーライドできます。 Custom 以外の値を選択した場合、Fog Control Mode は Balance に切り替わります。 |
- - Fog Control Mode | ボリュメトリックフォグのパフォーマンスと品質を制御するために使う方法を特定します。オプションは以下の通りです。 • Balance (バランス): パフォーマンスと品質のバランスが取れたアプローチを使ってボリュメトリックフォグの品質を定義します。 • Manual (手動): エフェクトを直接制御する内部プロパティーにアクセスできます。 |
- - - Volumetric Fog Budget | ボリュメトリックフォグのパフォーマンスと品質の割合です。値が 0 の場合はリソース負荷が最も軽く、値が 1 の場合は最高の品質が得られます。 このプロパティーは、Fog Control Mode を Balance に設定したときのみ表示されます。 |
- - - Resolution Depth Ratio | HDRP が画面 (X 軸と Y 軸) と深度 (Z 軸) 解像度間でリソースを共有するために使う比率です。 このプロパティーは、Fog Control Mode を Balance に設定したときのみ表示されます。 |
- - - Screen Resolution Percentage | 画面の解像度と比較した X 軸と Y 軸沿いのボリュメトリックバッファ (3D テクスチャ) の解像度です。 このプロパティーは、Fog Control Mode を Manual に設定したときのみ表示されます。 |
- - - Volume Slice Count | カメラの焦点軸に沿ったボリュメトリックバッファ (3D テクスチャ) に使う、スライスの数です。 このプロパティーは、Fog Control Mode を Manual に設定したときのみ表示されます。 |
- Directional Lights Only | HDRP がディレクショナル ライト のみにボリュメトリックフォグをプロセスするか、またはすべてのライトにプロセスするかを示します。ディレクショナルライト以外を含めると、エフェクトのリソース負荷が増します。 |
- Anisotropy | 散乱光の角度分布を制御します。0 は等方性、1 は前方散乱、 -1 は後方散乱を表します。非ゼロ値はパフォーマンスに中度の影響を与えますので、注意してください。値が高いと Enable Reprojection for Volumetrics フレーム設定との互換性問題が生じる場合があります。これは HDRP がグローバルとローカルフォグの両方に適用する、実験的プロパティーです。 |
ライト専用プロパティー
Light コンポーネント には、ボリュメトリックライティングに便利なプロパティーがいくつか含まれています。
- Emission Radius は補助光をシミュレーションするのに役立ちます。シーンから光を事実上押しのける役割を果たします。その結果、パンクチュアルライト の核を柔らかくします。常にゼロでない値を使い、再投影から生じるゴースティングアーテイストを減少させてください。
- Volumetric Multiplier はフォグのみに影響し、HDRP がサーフェスに使うライト乗数を置き換えます。
- Shadow Dimmer はフォグのみに影響し、HDRP がサーフェスに使うシャドウディマーを置き換えます。