Originally reviewed in review 22330833.
#rb andrew.lauritzen, Ola.Olsson, Sebastien.Hillaire
#jira FORT-515227
#rnx
#preflight 6356c6700313c24974e8f7dd
[CL 22749579 by tim doerries in ue5-main branch]
[Backout] - CL22476756
[FYI] tim.doerries
Original CL Desc
-----------------------------------------------------------------
Added support for filtered virtual shadow maps on SingleLayerWater. Implemented by applying the VSM shadow mask to the SeparateMainDirLight texture that is written out by the main water pass in the presence of distance field shadows (or VSM filtering) and then later composing it back into the scene. Also removed EncodeLightAttenuationFromMask() function from VirtualShadowMapMaskBitsCommon.ush.
#rb andrew.lauritzen, Ola.Olsson, Sebastien.Hillaire
#rnx
#preflight 6345d0aeb757820b7a90db71
[CL 22587146 by bob tellez in ue5-main branch]
#ushell-cherrypick of 21812612 by tim.doerries
#rb Ola.Olsson, andrew.lauritzen, Sebastien.Hillaire
#rnx
#preflight 6331ccc3a4769ad714ad3473
[CL 22307543 by ola olsson in ue5-main branch]
r.Mobile.ShadingModelsMask can be used to mask out specific shading models on mobile platforms.
Masked shading models will fallback to DefaultLit
[CL 21540496 by dmitriy dyomin in ue5-main branch]
- Saves ~0.3ms on PS4/XB1 (Dynres = 100%).
-Add possibility to disable grass velocity output when WPO velocity is enable (only effective when r.velocity.enablevertexdeformation != 0 and r.OptimizedWPO = true)
#rb [at]jeremy.moore
[CL 21524947 by serge bernier in ue5-main branch]
This resubmits the following original changelists (with fixes).
Original CL Desc for CL20737284 -----------------------------------------------------------------
Add a version of UseVirtualTexturing() that takes a shader platform.
A future goal is to deprecate the version that takes a feature level.
Original CL Desc for CL20738687 -----------------------------------------------------------------
Virtual texturing forces depth pass on.
This fixes bug when using any masked materials that sample VT.
#jira UE-157197
#jira UE-117783
#preflight 62b1cb8ac400b5ee2f517942
[CL 20757215 by jeremy moore in ue5-main branch]
- testing
- compiled and cooked QAGame locally for Win64
#preflight 62b12d784c538079d66599da
#rnx
#fyi Jeremy.Moore
Original CL Desc for CL20737284
-----------------------------------------------------------------
Add a version of UseVirtualTexturing() that takes a shader platform.
A future goal is to deprecate the version that takes a feature level.
#preflight 62b080e1613434b77fa673d0
Original CL Desc for CL20738687
-----------------------------------------------------------------
#jira UE-117783
Virtual texturing forces depth pass on.
This fixes bug when using any masked materials that sample VT.
#preflight 62b08fceef1c984554505316
[CL 20750841 by eric mcdaniel in ue5-main branch]
A future goal is to deprecate the version that takes a feature level.
#preflight 62b080e1613434b77fa673d0
[CL 20737284 by Jeremy Moore in ue5-main branch]
2.Uses the same shading models and dynamic lightings code path on desktop.
3.Remove the division of PI on mobile directional light's color in C++ to line up with desktop in shaders.
#jira UE-114145
#rb Dmitriy.Dyomin, Sebastien.Hillaire
#preflight 62b0411fd8082c5c200fa32a
[CL 20734991 by wei liu in ue5-main branch]
Requrements:
iOS: A8+
Android VK: more than 4 color attachements, more than 4 input attachments
Android GL: Unsuported - PLS seem to be limited to 128bits on most devices
#rb wei.liu
#preflight 625f866b9c09ef439db7612b
[CL 19861367 by Dmitriy Dyomin in ue5-main branch]
Local light shadows are supported on mobile forward and deferred, need to enable full depth prepass to generate the ShadowMaskTexture.
Remove the 4 maximum local lights limitation on mobile forward.
Remove the "High Quality Reflection" on mobile forward.
Disable simple lights on mobile forward.
#jira UE-149064
#rb Dmitriy.Dyomin
#preflight 625d17da772cf82d3a6059a6
[CL 19784597 by Wei Liu in ue5-main branch]
Storing water in gbuffer and runnign extra lighting pass would be too expenssiv. So instead, when in deferred, single layer water always output the main dir light luminance into a separate 111110 texture.
DF shadow is applied on that texture. DFShadow culling step is cached the first time for a given view in order to be able to reapply DFShadow later with a depth buffer containing water. This save 0.4ms on a base console.
DFShadow is naturaly skipped if the directional light does not have that feature enabled.
When DFShadow is executed, it is basically 0.24ms extra on a base console @ 1080p.
The separated light buffer is an extra 8MB allocated when in deferred.
This only works with deferred for now (forward does not run the reflection/composite pass).
Render target slot assignement is a bit fuzzy but this is a mostly static setup so should be fine. And could change with Strata down the line.
r.Water.SingleLayer.ShaderSupportDistanceFieldShadow is to enabled dfshadow on water for the shaders. Defaults to 1 and will only be enalbed when using deferred and when distance fields are enabled.
r.Water.SingleLayer.DistanceFieldShadow is a runtime toggle of the feature (if enabled the shaders still output to the separate light render target, but that is simply discarded).
Follow up: tile upsample, tile traceshadow, make it work with strata.
Tested shooter and console.
#rb Tiago.Costa, Kevin.Ortegren
#preflight https://horde.devtools.epicgames.com/job/62457ad79f404234145cd424
[CL 19613312 by Sebastien Hillaire in ue5-main branch]