* Moved Slate.h into SlateBasics.h and began shifting less commonly used headers into SlateExtras.h.
* Slate.h now simply includes SlateBasics.h and SlateExtras.h.
* Slate.h includes a deprecated warning now to indicate that SlateBasics.h + specific includes should be used instead.
* Moved dozens of inlined functions using Slate widgets into .cpp files to avoid header dependencies.
* All code samples now include SlateBasics.h and SlateExtras.h so future shifts will not break most those projects, but not trigger the deprecation warning of including Slate.h.
#BUN
[CL 2329610 by Wes Hunt in Main branch]
* Distance field building is now asynchronous and stored in the DDC separately from static mesh data.
* Added OcclusionMaxDistance and Contrast properties to Movable sky light
* Using the GBuffer normal instead of the generated distance field normal, fixes artifacts on two-sided materials and between modular pieces. Also saves about .7ms / 4.5ms
* Points in the distance field are only considered 'inside' the mesh if > 50% of all rays traced hit a backface. Most meshes can have a valid distance field generated with this heuristic. Meshes without a distance field representation can receive occlusion.
* Fortnite two-sided foliage with world position offset animation works fine now
* Using the resulting bent normal for diffuse lighting, improves consistency in occluded corners
* Resulting bent normal is also used to occlude skylight specular using an approximate cone-cone intersection, prevents leaking where SSR is not available
* Fixed stationary skylights not getting lightmap mixing
* Reflection captures now work with the movable skylight, which adds its diffuse contribution to IndirectIrradiance so their lightmap mixing works
* Added new show flag to visualize mesh distance fields, which ray traces through the distance fields and gives a sense of their shape
[CL 2276435 by Daniel Wright in Main branch]