Unreal Engine 4で物理的に正しい光に近い見た目を探ってみる
物理的に正確なレンダリング、いわゆる”PBR”なのですが、Unreal Engine 4(以下、UE4)におけるPBR、マテリアルについての説明であったり検証記事は公式であったりネットの海を漂うUE4つよつよマンな方が試しているのを色々と見かけるのですがライティングはどうなんだろう、ということで試してみました。
使用したUE4のバージョンは4.26です。配置されたstaticメッシュに適用したマテリアルはすべてグレー18%。
晴天が80,000~100,000lux、曇天が20.000~40,000luxと言われているのでどの辺を狙って設定するか…UE4の天球(SkySphereBlueprint)の空の見た目はカンカン照りな雲一つない晴天でもなく、とはいえ曇りというほどどんよりでもなく、いわゆる”晴れ”、それなりに雲も多いのでいったん60000luxに設定(この時点で結構カンでやっており物理的な正しさとは…な気もする)。
60,000lux…はい、真っ白に飛びます。
PostProcessVolumeのExposure(露出)やcameraを調整し以下の設定に。
測光モード:Manual
シャッタースピード:1000.0
iso:100.0
F値:2.8
シャッタースピードやF値についてはこちらのサイトを参考に薄日(EV13)相当の設定にしています。
また、スカイライトにはPolyHavenから拝借した上記HDR画像を設定しています。
白飛びはなくなったものの、UE4デフォルトのSkySphereを使っているため本来雲があるはずですが消えてしまっていたり、グレーマンの左に配置しているスフィア、こちら実はエミッシブを設定しており発光させたいのですが全然その兆しもなく…。
エミッシブを相当強い値にするとようやく光ります。これではエフェクトを作ったりの際非常にコントロールがし辛い気がする…。
大きすぎる値はコントロールがし辛いので、もう少し扱いやすい数値でイイカンジの見た目を求めたい…
というわけで太陽光60,000luxを思い切って1/10,000の値、6で設定してみる。
6lux…はい、真っ暗です。
先ほど設定したPostProcessVolumeを継承していますが、圧倒的光(照度)不足…っ!
こちら、前述したとおりEV13相当の設定にしていますが、露光補正にも同様に13を設定してみる。
ん、だいぶ自然な見た目になった、ような気がする、のですがどうでしょう…?
megascans素材を配置してみましたが割と自然な太陽光(雲の多い晴れの日)の下の見た目っぽい気がする!(、と言い聞かせているような言い回し)
エミッシブマテリアルも発光してくれます。
さて、せっかくなので夜もやってみました。
太陽光は0.1lux、天球は星空の出た夜空に設定。
SkySphereBlueprintは太陽光の角度に合わせて適切な見た目に変化してくれるので便利ですね。
いったん日没後(EV1)相当で設定。
スカイライトにはこちらのHDR画像を使用。
と、ここまで書いたものの、このやり方がどこまで正しいのか判断も出来ず物理的な正しさと言いつつも結局は「イイカンジ」というあいまいな着地点でしかないです…。
太陽の角度であったり純粋な太陽光の照度と空の照度などは加味していないけっこう適当なやり方にしかなっていない感……。
ライティングはシーンの基礎、どんなに良いモデルやマテリアルがあってもライティングがしっかりしていないと台無しなので今後も履修したいところ。
今回のテスト動画
今回noteを書くにあたって
こちらも参考にさせていただきました。