Fixed clear coat when sky but no reflection captures are present.
Fixed clear coat values were between 0 and 1 going gray.
[CL 2639167 by Brian Karis in Main branch]
* New Blueprint function for creating sky lighting from a blend of two cubemaps - SetCubemapBlend
* Diffuse sky lighting is blended on the CPU, specular is blended per-pixel with an extra cubemap lookup until the blend fraction becomes 0 or 1
* Skylight capture still blocks on the GPU for readback but not the rendering thread. This happens when a new source or destination cubemap is requested with SetCubemapBlend.
[CL 2601116 by Daniel Wright in Main branch]
* reduced order of SH (faster but a bit more blurry)
* DirectionalOcclusion (disabled by default, can be enabled in PostProcessSettings, affects SkyLight and ReflectionEnvironments but not AmbientCube)
* Material BlockGI feature
* Spotlight support
* Uses AsyncCompute on XboxOne as optimization (order is not optimized yet)
[CL 2553823 by Martin Mittring in Main branch]
* Still disabled as Metal requires a horrible workaround/hack
* Remove GSupportsGSRenderTargetLayerSwitchingToMips workaround
[CL 2295640 by Rolando Caloca in Main branch]
* This new shadow method is computed by cone tracing through the mesh distance fields when the 'bGenerateMeshDistanceFields' project setting is enabled
* It has high pixel cost but low object and triangle cost and is useful for covering a large depth range for a dynamic sun. It inherits all the limitations of mesh distance fields (no vertex animation, only static meshes supported for now, only uniform scaling). Components can use an inset shadow to use shadowmapping even while the ray traced shadows are used for the rest of the world.
* Currently only implemented for directional lights, as a final cascade after the shadowmapped cascades
* Current implementation groups pixels in a tile into a far depth range and near, tile culls the objects in the scene with those two groups. ~6ms in AITestBed_2 at 1080p on 7870 with a view range of 200k.
* bAllowMeshDistanceFieldRepresentations project setting renamed to bGenerateMeshDistanceFields
[CL 2283597 by Daniel Wright 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]
Needs some clean up still. Standard deferred reflections not implemented yet. Tiled deferred reflections needs some optimization. ClearCoat and ClearCoatRoughness needs to be exposed to the material editor.
[CL 2118481 by Brian Karis in Main branch]