* In this case, instead of baking each mesh material property to it's own buffer, we can write all the meshes to the same buffer as their UVs are already the final ones that do not overlap
* Memory usage is greatly reduced (in test case with ~300 materials to bake, peak is reduced by 5.5GB)
* A lot faster to process (~2x in most cases) as we are doing a single RT readback per baked material property
* We can also skip the final merge of the baked outputs, as we have a single one
Refactored the material baking module to have both code paths (single output and multi outputs) share as much code as possible
#rb jeanfrancois.dube
#preflight 63eba6e0284e76cdadbecb48
[CL 24226039 by sebastien lussier in ue5-main branch]
* If set to true, values stored in the emissive textures will be clamped to the [0, 1] range rather than being normalized and scaled back using the EmissiveScale material static parameter
#rb jeanfrancois.dube
[CL 24075476 by sebastien lussier in ue5-main branch]
Code now checks for this occurrences and reprorts an error message instead of siliently trying to compile the material anyway.
This was causing a crash when two material functions containing the same parameter bound to different values (e.g. different textures) are used in the same material.
#jira UE-150412
#rb jeremy.moore
#preflight 63bc4896bf54fa7b36f61ea5
#preflight 63c13055b0652247507fae3e
[CL 23675742 by massimo tristano in ue5-main branch]
Code now checks for this occurrences and reprorts an error message instead of siliently trying to compile the material anyway.
This was causing a crash when two material functions containing the same parameter bound to different values (e.g. different textures) are used in the same material.
#jira UE-150412
#rb jeremy.moore
#preflight 63bc4896bf54fa7b36f61ea5
[CL 23624757 by massimo tristano in ue5-main branch]
Code now checks for this occurrences and reprorts an error message instead of siliently trying to compile the material anyway.
This was causing a crash when two material functions containing the same parameter bound to different values (e.g. different textures) are used in the same material.
#jira UE-150412
#rb jeremy.moore
#preflight 63bc17dd68068a8bd6e4b7bb
[CL 23611477 by massimo tristano in ue5-main branch]
- Removing MaterialAttributeDefinitionMap and MaterialRenderProxy from MaterialShared.h
- Removing MaterialShared from Material.h
#preflight 639cbb35776b61ba3b82f03e
[CL 23541603 by christopher waters in ue5-main branch]
- Use material F0=>IOR by default.
- Then use the root node refraction pin input to override IOR for art direction.
- Refraction is now disable using the mode None.
- This data converted according to the graph content. Usingthe Rectraction input is detected by looking at all the node from the mateiral graph. When material attributes are used however, It is however over conservative since it does not check if the node a really plugged in an actual attribute path.
It was needed to deprecated the previouls RefractionMode variable as default value needs to now be RM_None. The new property is RefractionMethod.
The new GetRootNodeOverridesDefaultRefraction function on FMaterial has a default but to have correct refraction it must be implemented when it matters.
Refraction engine test were all green.
#rb charles.derousiers, chris.kulla
#preflight https://horde.devtools.epicgames.com/job/63885ca3b21cdd3a2601428e
[CL 23370408 by Sebastien Hillaire in ue5-main branch]