2016년 8월 4일 목요일

My strange global illumination solution.

Global illumination is spationaly/directinaly low frequency signal.
Lightmap is sptaionaly high frequency but cannot store high frequency directional data due to memory issue.
Specular IBL is also important part of Global illumination. most game engine uses pre-filtered cubemap for specular GI. This has high frequency directional data, but spatial frequency is very low(1 ~ 300 cubemap in the level in UE4).

So I thought that if specular IBL is low spatial freqency data, what if we use high frequency diffuse GI and forgive high frequency spatial diffuse GI?

Below are result of that thought. There is only 1 probe which can be updated in realtime(no lightmap) and hbao+.


Diffuse indirect lighting might be incorrect spatially. but matches with specular IBL.
and with very low memory(no lightmap) and can be easily interpolated(time of day).

probe can be interpolated using volume texture(3d clipmap in large world), or blended in tiled culling using compute shader. I tried both and chose tiled culling with CS.