Physically Based SkyのModelには以下の3つがある。今回はその中から最も簡単なEarth(Simple)を使ってみる
まずPhysically Based SkyのTypeとは何かについて軽く説明すると、TypeはHDRPがInspectorを簡素化するために用意したプリセットである。 Earth (Simple)とEarth (Advanced)は地球をシミュレーションするために用意されたプリセットである。
使用できるプリセットは以下
の二つを設定することができる。
Sea Levelはワールド座標系における海面の位置を指定する。単位はメートルである。Sea Level = 0のときはY=0の位置を海面として物理ベーススカイのレンダリングを行う。 そのため高いところ(山頂など)の空をシミュレーションしたいのであれば、Sea Levelを負の値にすればよい。
Sea Level = 0 | Sea Level = -5000 |
---|---|
右のほうが空の青色が少し濃くなり(正確に言うと黒に近づく)、太陽の色が白に近づく。 これは高度が高ければ大気が薄くなり、粒子の濃度が下がり結果的にレイリー散乱が地表と比べ起こりづらくなっているからである。 また太陽の位置を傾ければ夕日を見ることができるが、地表と比べ赤く見えない。これもレイリー散乱が起こりづらくなっているため起こる現象である。
※補足すると夕日が赤く見えるのは、地球が自転し太陽の位置が相対的に変わることで太陽光が地球に入ってからカメラに届くまでに通過する距離が長くなり、結果的にレイリー散乱の回数が太陽が真上にあるときに比べて多くなるからである。
Ground Tintは地面の色を指す。
黒 | 赤 |
---|---|
Aerosol Densityは天頂(自身の真上の空の地点)の不透明度を設定する。
ドキュメントの実装で参照しているPrecomputed Atmospheric Scatteringという論文を確認してみると、 Aerosol Densityは(5)の式のTransparency Tを不透明度に反転した値のことだと思われる。
公式の説明では
エアロゾル粒子の単一散乱アルベド (カラーチャンネルごと) です。 値が 0 の場合は粒子を吸収し、値が 1 の場合は散乱させます。
と記載してある。ここで指定した色が散乱しているように見える。 デフォルトでは黒になり完全に光を吸収する。そのためAerosol Densityを1にすると完全に光を吸収し散乱しないため、真っ黒で太陽のみ白く見える。 ここで赤などを指定すると、赤色を散乱するようになる。
空の色の彩度を設定する。何も指定しなかった場合は1。0に近づくにつれ同じ明度の灰色に近づく。
空の不透明度の飽和度を制御します。
恐らく空に何かテクスチャを表示するときに使用する値だと思われる。今回はそこまでやってないので、特に違いは感じられない。しいて言えば太陽光が少し青っぽくなったように感じた。
HDRP が空の不透明度に適用する乗数です。
上に同じ。 Alpha Saturationをより細かく設定するための値と思われる
HDRP が水平線で空に色付けするために使うカラーを特定します。
HDRP が観察者の真上の空の地点 (天頂) に色付けするために使うカラーを特定します。
HDRP が Horizon Tint と Zenith Tint をどのようにブレンドするかを制御します。これを -1 に設定すると、Zenith Tint は水平線まで下に拡大します。1 に設定すると、Horizon Tint が天頂まで上に拡大します。
Zenith Tintを赤、Horizon Tintを青にして実験
以上でEarth(Simple)の紹介は終了。これだけでも自由度がある。Advancedはまた機会があればやる。