妹でもわかるUnrealEngine4

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

間接ライティングについて

f:id:una_unagi:20171027000330p:plain

「4.18でボリューメトリックライティングというのが追加されたみたいなんだけど、それは間接ライティングキャッシュの強化版で、でもよく考えると間接ライティングキャッシュがそもそもわからなかったので調べた」

妹「わたしも知らない」

「こういう光関係のあれは、だいたい機能別サンプルのLightingの中にあるので、それを確認しながらマニュアルを見る」

docs.unrealengine.com

docs.unrealengine.com

「まず間接ライティング(Indirect Lighting)というのがあって、それをキャッシュする機能らしい。ではその間接ライティングが何かというと、よそから反射した光で明るくなる仕組みのことらしい」

f:id:una_unagi:20171027001057p:plain
点光源を周りをメッシュで囲んで、全面だけ光るようにした仕掛け

f:id:una_unagi:20171027001429p:plain
直接ライティング(Indirect Lighting Intensity = 0.0)

f:id:una_unagi:20171027000810p:plain
間接ライティング(Indirect Lighting Intensity = 5.0)

妹「あー、反射してるね」

「赤い光はまず壁を照らすけど、それによって周りの物もほんのり赤くなるというのが間接ライティングの効果。これはライト側の設定で、Indirect Lighting Intensityを多めにするほど、周りへの影響力が大きくなる。機能別サンプルでは5.0に設定してあった」

妹「こういう感じだと、普通は周りも赤くなるような気がする」

「映画館とかで観客がスクリーンに照らされるみたいになる。部屋が明るい時は無視できるレベルだけど、他に光源がなければ目立つ」

妹「それのキャッシュというのは?」

「スタティックなアクターは、その反射した光とか全部計算して終わりだけど、それだとムーバブルなアクターが光らない。かといってゲーム中に全光源の反射なんてやってられない。そこでだいたいこのへんにはこういう色の光が来てる、というデータを時点に計算しておく。それが間接ライティングキャッシュ。ただし大雑把に計算するから、スタティックの場合ほど綺麗にライティングはできないんだけど」