うにty生活

UnityChanを生活させたい

Physically Based Skyの全プロパティ紹介

f:id:tubakihimeLoveHate:20211220224948p:plain

今回はUnityのHDRPでPhysically Based Sky(物理ベースの空)で設定できる

プロパティを見ていきます。

Unity2020でこの記事を書いていたところPhysically Based Skyが大幅アップデートするUnity2021.2がでたということで2021.2で書き直しました!

Unity2020との違いも含めてPhisically Based Skyのプロパティを見ていこうと思います。

 

 

環境

Unity 2021.2.6f1

HDRP 12.1.2

※LTSではないので注意

 

Physically Based Skyとは

直訳すると物理ベースの空で、設定を行うと 太陽の角度によって昼/夕方/夜の再現が簡単にシミュレーションが可能になります

 

 

Physically Base Skyを設定した時の太陽です(Unity2020.x)

太陽を表示させた時の画像

今まではPhisically Based Skyといえばこれでした。

Unity2021.2.xからはこうなります!

↓↓↓↓!!!

f:id:tubakihimeLoveHate:20211220225204p:plain

 

やばくないですか!?

これはPhisically Based Skyだけの進化ではありませんが、雲とフレアが追加されたことによってなんとも美しいデモシーンになっています。

 

さらにUnity2020ではHDRI Skyでは太陽は描画されてなかったのですが、Unity2021.2ではHDRI Skyでも太陽が出てくるようになりました!

これからはHDRIでもPhysically Based Skyでもどちらでも高クオリティなライティングや絵作りが可能です

※HDRI Skyの場合、太陽の角度によって昼/夕方/夜のシミュレーションはできません。

 

それでは簡単にPhysically Based Skyの準備方法と基本操作からおさらいしていきましょう

 

設定方法

まずはデフォルトではHDRI SkyになっているのでPhysically Based Skyに変更します。

1. GlobalのVolumeを作成

以下の方法で作成可能です(既に存在している場合は新たに追加する必要なし)

ヒエラルキービュー>右クリック>Volume>Global Volume

多分初めに開いた時には既にこの状態だと思います。

 

2. 作成したVolumeのVisual EnvaironmentをPhysically Based Skyに変更する

 

3. Global VolumeにPhysically Based SkyのOverrideを追加する

 

4.Visual EnvaoronmentがHDRI SkyのときはHDRI SkyのVolumeを、

Physically Based SkyのときはPhysically Based SkyのVolumeをにチェックを入れます。今回はHDRI Sky Volumeのチェックは外します。

physically Based Skyを設定したときn

これで準備完了です。

 

基本操作方法

太陽はDirectional LightのRotationで移動可能

大きさはDirectional Light > Shape > Angular Diameterから設定可能です。

 

Physically Based Skyのプロパティ

ここからはプロパティを紹介

Physically Based Skyのプロパティ

パッと見プロパティについてはUnity2020とUnity2021.2で変化はありません

Model > Type

後続の設定のテンプレートを提供してくれています。

作成するシーンが地球である場合、Earthを選択します。それ以外の惑星を表現したい場合はCustom Planetを選択します。

 

EarthのSimpleとAdvanceの違いとしてAdvanceの方がより詳細にプロパティを調節可能です。

Earth normal

Earth Advanced

 

Planet

Spherical Mode(Earth-Advanced,custom only)

惑星が球面であるかを設定します。

球面モードにチェックが入っているとき、Planet Center Position

チェックが入ってないときは、Sea Level(後述)が設定できるようになります。

 

Sea Level(Not Spherical Mode only)

海面の高さを設定できます。値をマイナスしていくと地平線が下がり、増やしていくと上がっていきます。

また、海抜が高いほど大気の密度が低くなります。以下の画像はSea Level「0」と「-10000」の比較画像です。太陽の位置は変更していませんが、大気が薄くなっていることがわかります。

山の上を想定した場合はマイナス値を増やすことでよりそのシーンを再現することができます。

 

Planet Center Position(Spherical Mode only)

惑星のセンターポジションを設定。この設定は基本的にそのままで良いと思います。

 

Planetary Radius(Type = Custom Planet only)

惑星の海面からの半径です。

半径が大きくなるということは惑星の弧が真っ直ぐに近づくということなので、

地平線の位置が高くなっていきます。またデフォルトの「-6378100」は地球の半径である、6378kmのことです。


 

Planet Rotation

惑星の傾き具合。惑星の自転ということですが、変更しても別に太陽の位置が変わるわけではなかったです。

次に紹介するGround Color Textureと一緒に利用します。

 

Ground Color Texture

Ground Tint

Ground Emission Texture

Ground Emission Multplier

これらは地表の色を決めます。地表からの照り返しなどに影響します。

Ground Color Textureに地球儀のようなTextureを設定することで現在いる場所の正しいGround Colorが取得できます。海の位置にPlanet Rotationが設定されているならGround Colorは青色、地表なら茶色みたいな表現が可能です。

Ground Color Textureを設定したときの風景

 

この設定をして、どんどん画面を引いていくとなんと宇宙空間に飛び出て地球を確認することができます。

※宇宙空間に飛び出るにはVolumetric Clouds Volumeを無効にする必要があります。

Ground Color Textureを設定したときの宇宙空間

 

このような地球儀Cubemapを作成するには以下から画像を取得します。

December, Blue Marble Next Generation w/ Topography and Bathymetry

そして、取得したTextureを以下のように変更します。

・Texture Shape → Cube

・Mapping → Latitude-Longitude Layout

・Applyを押下

 

Space(Advance or Custom only)

f:id:tubakihimeLoveHate:20210724224132p:plain

Space Emission Texture

この項目は結構大事です。 この項目にcubemap Textureを設定することで、夜をシミュレーションで利用するEmissive効果を持ったTextureを設定することができます。

ここに星空を設定することで夜を星空に変更することができます。

星空のcubemapは以前作成したので参照して見てください。3分もあればできますよ!

夜のライティング設定と星空作成 #35 - うにty生活

 

Space Rotation

上記TextureのOffsetを調節可能です。

 

Space Emission Multiplier

上記テクスチャの発光の強さを設定します。 

星空は少しこの値を上げないと見えにくいと思います。

 

 

Air(custom only)

f:id:tubakihimeLoveHate:20210728074645p:plain

Air Maximum Altitude 

Sea Levelの項目で、「海抜が高くなるほど大気が薄くなっていく」という説明をしましたが、Air Maximum Altitudeはその割合を設定できます。

 

Air Density RGB

単一散乱アルベドの散乱設定項目です。値はRGBを0~1に正規化したもので値が小さいほど色は光を吸収し大きいほど散乱します。

どういうことかというとこのようにAir Tintに赤色を設定した状態でAir Density Rを1にすると赤色は吸収される(透過する)ということです。

f:id:tubakihimeLoveHate:20210728074745p:plain

 

この設定OrverrideしたVolumeをボックス配置しておくと、砂嵐に入ったような演出をすることが可能です。

 

Air Tint

単一性アルベドを設定できます。この色がベースカラーとなって上のAir Densityの影響を受けます。

 

Aerosols

気体中に浮遊する微小な液体または固体の粒子と周囲の気体の混合体をエアロゾル(aerosol)と言います。

https://www.jaast.jp/new/about_aerosol.html

 

エアロゾルが存在している範囲では、境界線付近の白いモヤのような現象を再現できます。これはミー散乱によるもので白っぽく見えます。

以下はそのエアロゾルに関する設定項目

f:id:tubakihimeLoveHate:20210728080521p:plain

 

Aerosol Maximum Altitude

Air Maximum Altitudeの説明と同じで、高度に応じた密度降下の割合をメートルで表しています。具体的にどうなるかというとミー散乱で白っぽく見えている部分の範囲が広くなります。

 

Aerosol Tint

Aerosol Density

 エアロゾルの単一散乱アルベドです。以下のAerosol Densityの割合によって透明度が変化します。

 

Aerosol Anisotropy

3種類の散乱方法が設定できます。

・1:前方散乱強め

・0:異方性なし

・−1:後方散乱強め

結果から先に言うとこの値は見た目に大きな影響はありません。

ミー散乱は、エアロゾルなどの大気中の大きい粒子に光がぶつかって散乱することです。地平線付近が白く見えるのはミー散乱の効果になります。

ミー散乱の前方散乱後方散乱

f:id:tubakihimeLoveHate:20210731185928p:plain

Unityでのミー散乱について、私が腑に落ちていない部分があるのでまた調査したいと思います。→ちょっと待ってね

とにかくこの値は0のままでいいということです。

Artisic Overrides

Artistic Overridesのinspector画像

空の色に関する微調節を行う設定項目です。

 

Color Saturation 

彩度の変更

 

Alpha Saturation

Alpha Multiplier

透明度の変更。0に近づけるとDirectional Lightが白くなります。

Multi plierは適用する透明度の倍率です。

あんまり変化はわからないです。

 

Horizon Tint

境界線の色が変化します。空の色がHorizon TinitとAir Tint(後述するZenith Tint)とのグラデーションになります。

 

Zenith Tint

Horizon Zenith Shift

Zenith Tintは空の頂点カラーを設定できます。Air Tintとは乗算されているような色合いになります。Horizon Zenith ShiftでZenith Tintの影響度を変更可能です。

Horizon Tint、Horizon Zenith Shift , Zenith Tintを設定した時の画像

 

Miscellaneous

MiscellaneousのInspector画像

Physically Based Skyを設定したときのLighting設定です

 

Number Of Bounces

光が散乱する回数

値を上げるとより現実に近い表現ができるが、ベイク時間も長くなる

 

Intensity Mode

空の環境光の明るさを調節するモードです

Exposure:Exposure Volumeの値の2乗の計算をします。なので0だと変化なし

Multiplier:環境光の倍率

 

Update Mode

環境を更新する頻度です。

On Change:設定が更新されるたびに変化

On Demand:スクリプトから更新を手動で呼び出すまで待つ

Realtime:このモードを選択して表示されるUpdate Periodの間隔で更新する

 

Include Sun In Baking

Reflection Probに空と一緒に太陽が表示されるかどうかの設定だそうですが、

違いがうまく現れなかったです。

 

ということで長くなりましたが、Physically Based Skyのプロパティ紹介は以上です。

2021年内に記事を投稿できるのは最後になると思います。

2022年もどうぞ、よろしくお願いします。それでは。

 

参考

単一散乱アルベド single scattering albedo - aerosolpedia エアロゾルペディア

大気はどこにあるの? | 科学の普及活動 | 公益財団法人日本科学協会

成層圏エアロゾルと対流圏エアロゾル Stratospheric and Troposphric aerosols - aerosolpedia エアロゾルペディア

レイリー散乱とミー散乱 Rayleigh and Mie scattering - aerosolpedia エアロゾルペディア