Global Illumination alternatives

As one can see, all GI methods, even pre-computed, have big problems today. Low resolution, problems with dynamic objects, etc. etc. And unfortunately with the GPUs the console makers decided to go with there’s not really enough performance there to just brute force some of the better solutions researched today. So ending up with something, anything, dynamic and useable at the same time is going to be a huge win.

Personally I love the idea of the heightmap GI. Storing a g-buffer of the albedo/inputs and sampling an output buffer of say, HDR10-10-10-2 via something like cone tracing should be relatively doable. And I say cone tracing because you’re cone tracing a 2.5d heightfield you can easily mipmap and assume that there’s no gaps in. It’s also trivially shadowed and lit from a single directional light source, as something like CD Projekt Red’s terrain shadows (just shadow from the heightfield) and cloud shadows can be projected onto the terrain. One can also include anything “big” enough onto the g-buffer if one wants. Large buildings/forests might be able to be included.

This also works well for distant shadowing. If you take the top of a forest of trees into account for some distant part of the heightfield, but sample from below the trees in the scene, you can account for a hacky/distant occlusion between the two and keep some more obvious “popping” from happening relatively cheaply, allowing one to limit the distance DFAO needs to be calculated.