This avoids to define STRATA_ENABLED as 'env. define' for all global shaders needing a Strata specific path.
#rb none
#jira none
#fyi sebastien.hillaire
#preflight 62151b25797dbbeb472ae2eb
[CL 19074999 by Charles deRousiers in ue5-main branch]
- Completely changed the way we evaluate and represent the material topology.
- A topology is now represented as a tree to allow any horizontal/vertical operations (almost like a kdtree).
- This allows for correct translucent material coverage/transmittance evaluation, as well as correct BSDFs luminance weight (finally).
- All the operations to be able to do that are expended in HLSLTranslator instead of letting the compiler handle it (otherwise was too slow, leading to bugs and could not even debug shaders). This means no conditional BSDF packing.
- There is no more Material/layer/BSDFs array: only a Tree or operators, some of them being BSDF at leaves.
- Parameter blending has also been updated: when enabled on a node, it will be forced on all the oprator child / in the sub tree.
- Parameter blending is applied on an inlinedbsdf on the StrataData. When it is the root of the parameter blending subtree, it is promoted to a fully fledged BSDF operator node to allow other regular operators.
- The inlinedbsdf is not longer in premultiplied mode. Horizontal/Vertical/Add parameter blending operators have been updated to reflect that. This allows for simpler/unified/clearer code.
- Vertical blending now uses the new simple "layering of two slabs with uncorelated coverage" math I have RnD'd. See GetVerticalLayeringInfo in ShadingCommon.ush.
Follow up to this CL:
- CompileStrataBlendFunction should use parameter blending.
- Add more compilation debug output
- Update material vizualisation
- Fix Rough refraction
- Fix decals
- Fix debug probes
- Pack FStrataBSDF
- Move all StrataCompilationInfoCreateSingleBSDFMaterial into into the strata tree and rework cost evaluation and material LOD
- Expand graph visit such as UpdateBSDFWeightAfterOperatorVisit to be specific to operators for the compiler to have to do less search to inline what we know already
- Fix STRATA_TODO: operation using parameter blending are not actually discarded so they still occupy a pot in the opeartion arrays in the compiler and in the shader also.
#rb charles.derousiers
#preflight https://horde.devtools.epicgames.com/job/620a5f5d803d9066e67de938
#fyi charles.derousiers
[CL 18993400 by Sebastien Hillaire in ue5-main branch]
#ROBOMERGE-SOURCE: CL 13045917 via CL 13045918 via CL 13045919 via CL 13045920 via CL 13045921
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v686-13045012)
[CL 13048432 by dmitriy dyomin in Main branch]
#jira none
#rb mi.wang
#ROBOMERGE-SOURCE: CL 12055273 in //UE4/Release-4.25/... via CL 12055274
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v657-12064184)
[CL 12076180 by wei liu in Main branch]
Make all postprocess passes including postprocess materials work properly with MSAA on IOS.
#jira UE-88184
#rb dmitriy.dyomin, allan.bentham, mi.wang, jack.porter
#ROBOMERGE-SOURCE: CL 11646197 in //UE4/Release-4.25/... via CL 11646198
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v656-11643781)
[CL 11646201 by wei liu in Main branch]
Add a Cvar for using half-res custom depth.
Add a seperate permuation for mobile custom depth stencil pixel shader, so mobile depth prepass could not be affected.
Support PostprocessMaterial stencil test on mobile platform base on the new mobile custom depth implementation
#rb wei.liu, dmitriy.dyomin, mi.wang
#ROBOMERGE-OWNER: jack.porter
#ROBOMERGE-AUTHOR: jack.porter
#ROBOMERGE-SOURCE: CL 11302451 via CL 11302452
#ROBOMERGE-BOT: (v649-11301724)
[CL 11302544 by jack porter in Main branch]
[FYI] Dmitriy.Dyomin
#rnx
#ROBOMERGE-SOURCE: CL 10925142 via CL 10925143 via CL 10925145
#ROBOMERGE-BOT: (v626-10872990)
[CL 10925146 by allan bentham in Main branch]