I was trying out the distance field AO and noticed something a little strange when painting trees, that one of them was a lot darker than it should have been. I looked in the visualize thing and saw that only the first tree that I painted was getting the effect. Is there a way to enable it for them all, or to disable it for them all while still using it for the rest of the map? It seems a little counterproductive to have an AO solution like this for dynamic lighting and then have it break on instanced objects like this.
Even though this seems like a bug, i dont think DFAO will work right with meshes like trees currently. :\
Limitations
Limitations of the technique
DX11-only, high end feature
Non-uniform scaling cannot be handled
correctly (mirroring is ok) Only
Ambient Occlusion is provided, which
is different from Sky Occlusion
because it has a limited blocking
distance Only casts shadows from rigid
meshes although they can move
dynamically Materials that deform the
mesh through World Position Offset or
displacement will cause artifacts, as
the distance field representation does
not know about these deformationsLimitations of the current
implementation (can be improved in the
future)Only static mesh component is
supported for now. In the future,
other types may be supported that are
also rigid. Meshes must be mostly
closed. For example, a box will work,
but a plane will not. However, if the
material assigned to the UStaticMesh
asset is two-sided, both sides will be
treated as front faces and the
distance field will be valid. The mesh
must be rebuilt to propagate a change
to the material applied. Surfaces
without a distance field
representation cannot receive
occlusion yet and get a constant
occlusion of .5. This includes
skeletal meshes, translucency, static
meshes with CastShadow disabled or
that were not closed, etc. Updates to
the AO from dynamic scene changes lag
a bit as the work is spread across
multiple frames. Occlusion may shift
around a bit as new samples are
generated. Seams between modular
meshes - lighting is done using the
Distance Field normal, which is curved
around hard edges. This causes seams
in the occlusion between otherwise
flat surfaces.
Regarding all this you may want to skip DFAO for now if your project requires too many trees.
Link to documentation: Distance Field Ambient Occlusion in Unreal Engine | Unreal Engine Documentation