UE4 LIGHTMASS Deep Dive #UE4DD まとめ
PointLightの場合、ランダムにフォトンを放出。なので、ある一点にフォトンが来る可能性は低い。なら、Indirectは…さらにランダムなので可能性が低い #UE4DD
2016-07-30 13:17:05なので、フォトンマッピングだけでは足りない。なので、Final Gatheringを使う。テクセルからレイを飛ばして、フォトンを取りに行く #UE4DD
2016-07-30 13:17:49近傍ピクセルだけじゃなく、自分自身に届くであろうPhotonをレイトレースして拾いに行くのがFinal Gathering。#UE4DD
2016-07-30 13:20:06Final GatheringだけでOK?…というわけではない。ノイズだらけになる (テクスチャの解像度が足りないような感じ) #UE4DD
2016-07-30 13:20:14綺麗にするなら、ビルド時間がとてもいる。なぜなら、それぞれのテクセルが相互に情報をやり取りしていない、独立しているから #UE4DD
2016-07-30 13:20:53ファイナルギャザリングは優秀だけど、フォトンマッピングの結果が荒いと、周囲のテクセルの結果が異なりすぎて、かなり精度をあげなくてはいけない #UE4DD
2016-07-30 13:21:56間接光はぼやけてるし、近くの間接光はだいたい同じでしょ?ということで、どこかでギャザリングしたらそれをキャッシュする。で、近くのテクセルはそのキャッシュを使う #UE4DD
2016-07-30 13:22:19間接光の成分は、だいたい同じだとみなし、あるテクセルをファイナルギャザリングしたとき、キャッシュとして取り置いておく。近い位置のテクセルでファイナルギャザリングを取ろうとしたら、キャッシュから補完するようにするのが、Irradiance Caching #UE4DD
2016-07-30 13:23:48Final Gatherの結果を近傍ピクセルで利用するためにキャッシュするのがIrradiance Caching。近場なら似たような結果になるでしょ?というコンセプト。#UE4DD
2016-07-30 13:23:59photonを出すIndirectLighitng。まずはフォトンを放出。そして、各テクセルに対して近くにキャッシュがあるか確認。あれば、それを使う。なければ、そのテクセルからレイを飛ばしてフォトンを取ってくる。で、キャッシュ化する。これを繰り返す #UE4DD
2016-07-30 13:25:11