That was like month ago. In engine development it’s equivalent of stone age :D.
@up yes. But, these dynamic lighting features like DFAO or similar are really high end features, which requre minimum precomputation. In case DFxx you pay cost of precomputing distance field on mesh, but everything else is dynamic.
All things considered, it’s still cheaper than voxel based techniques where everything is dynamic (including voxelization).
To compare you them:
- Distance field works on very thin geometry, since there is no leaking.
- Distance fields are cheaper, since heavy step of creating alternate representation of geometry is precomputed.
- They works on any geometry with distance field.
- Voxels are much heavier, since they need to be computed on runtime (in theory you can precompute them, but it will take lots of space to store them).
- Voxls are usually causing light leaking, since well, They can’t be to small.
- Voxels work on fully interacive environments (including deformation, destruction etc). Something which distance fields can’t inherently support.
- Both are high end features, since computing at runtime indirect lighting is very heavy on performance.
DFAO is mostly heavy because of foliage. But in that commit there was added option to disable it for foliage. You can also consider disabling it for small props terrain meshes, which do not contribute enough and there usually thousands of them.
I personally did not have any big performance problems with DFAO. I had much more issues with LPV.
It was leaking terribly (on seemingly open city map!), and it tanked from 60 to around 35-40fps, thanks to rendering RSM.
If this Irradiance DF will be as good as DFAO I will be perfectly happy. And if in future it will support second diffuse bounce, I will send hand made pie as thanks (;.
Either way I agree there is still improvments to be made on performance front. UE4 sitll perform worse than CE3 out of box with fully dynamic lighting. Especially on open maps, with lots of meshes.
But I don’t think there can be much done using DX11. We will have to wait for DX12, to lift some of limitations (like slow resource binding trough CPU).