Commit Graph

87 Commits

Author SHA1 Message Date
jamie hayes
ec625768bf Partial backout of 33180448.
The displacement scaling material node doesn't work correctly with material instances that do not create static permutations, and we can't assume that displacement scaling of the material can be known as final during material translation. As a result, we stop trying to determine if a constant displacement could effectively disable tessellation and instead return to disabling displacement when the displacement pin has not been connected, which can still be used (via Material Attributes) to disable displacement based on static switches.

#rb massimo.tristano
#rnx

[CL 33576411 by jamie hayes in ue5-main branch]
2024-05-10 11:24:22 -04:00
jamie hayes
ffb56f2811 Ensure the displacement material attribute is always defaulted to the center and make it so that displacement set to a constant that is equal to center disables displacement for the material.
#rb massimo.tristano

[CL 33180495 by jamie hayes in ue5-main branch]
2024-04-23 17:17:42 -04:00
christopher waters
ae9b1051dc Adding Texture Collection
- UTextureCollection data asset that just holds an array of Texture assets.
- Uses the new RHIResourceCollection RHI resource type which puts all the texture bindless indices into its own buffer.
- Adding TextureCollection material nodes for accessing and sampling from Texture Collections.

#rb massimo.tristano

[CL 32897524 by christopher waters in ue5-main branch]
2024-04-11 13:49:14 -04:00
Stu McKenna
689adbad98 - Add Particle Sprite Rotation material function
#rb rob.krajcarski
#jira UE-140361
#preflight 64418648f126d87e4590b10f

[CL 25154395 by Stu McKenna in ue5-main branch]
2023-04-21 17:35:23 -04:00
graham wihlidal
e1db51128e Nanite (WIP) scalar displacement UX support in material editor.
#rb jason.nadro, arciel.rekman, brian.karis
#preflight 6435a2e7127980724bfb7e4e

[CL 24997884 by graham wihlidal in ue5-main branch]
2023-04-11 16:48:54 -04:00
aidin abedi
5e47c0fe58 Fix incorrect normals when baking certain materials. The issue is due to a change in 5.2, which introduces a new virtual method, FMaterialResource::IsTangentSpaceNormal, that determines whether a material uses tangent-space normals or world-space. The baking module needs to override this method and forward all IsTangentSpaceNormal calls to the actual material being baked to properly determine which space the normals should be in.
#jira UE-170383 UE-173004
#preflight 63df227378716a01e849bc7b
#rb massimo.tristano
#lockdown jeanmichel.dignard

[CL 24031430 by aidin abedi in ue5-main branch]
2023-02-06 11:19:41 -05:00
aidin abedi
d58aa5718b Fix incorrect results when material baking some properties in a translucent material. To also avoid future issues like this, the fix removes all hard-coded assumptions in the baking module, regarding which properties are active depending on blend mode. These assumptions are not feasible to manually keep in-sync with the latest material behavior and therefore it's better to let the caller of the material baking module decide how to handle potentially inactive properties.
#jira UE-174381
#review @Massimo.Tristano @Kevin.Ortegren
#preflight 63c70eb22e714f64ad562f69

[CL 23773062 by aidin abedi in ue5-main branch]
2023-01-19 09:47:31 -05:00
aidin abedi
86152b0bc7 Add support for material baking custom output transmittance color and fix crash when baking invalid custom output
#jira UE-131149
#preflight 63ae50efc16855964d09967c
#review @Kevin.Ortegren @Massimo.Tristano

(based on PR #8498)

[CL 23767003 by aidin abedi in ue5-main branch]
2023-01-18 18:21:18 -05:00
aidin abedi
7d0da30082 Add support for material baking refraction property
#jira UE-131147
#review @Kevin.Ortegren @Massimo.Tristano

(based on PR #8496)
#preflight 63c6ce4f3f587d9e14ece2b0

[CL 23739612 by aidin abedi in ue5-main branch]
2023-01-17 11:53:37 -05:00
aidin abedi
8fe4cdb936 Add support for using material baking to efficiently check UV overlap
#jira UE-131151
#review @Kevin.Ortegren @Massimo.Tristano

(based on PR #8500)
#preflight 63c6c7ff02024f93d861359e

[CL 23739117 by aidin abedi in ue5-main branch]
2023-01-17 11:26:41 -05:00
aidin abedi
cd6a77b27f Add support for material baking shading model property
#jira UE-131148
#review @Kevin.Ortegren @Massimo.Tristano

(based on PR #8497)
#preflight 63c6c0220b358b97d1983695

[CL 23738607 by aidin abedi in ue5-main branch]
2023-01-17 10:53:19 -05:00
aidin abedi
001c32df84 Add support for material baking expressions that rely on primitive data
#jira UE-132097
#review @Kevin.Ortegren @Massimo.Tristano

(based on PR #8526)
#preflight 63c6b27302024f93d8591a46

[CL 23737565 by aidin abedi in ue5-main branch]
2023-01-17 09:51:53 -05:00
Charles deRousiers
338b5c153b Merge BlendMode and BlendModeStrata to reduce code divergence, and ease maintenance.
#rb sebastien.hillaire
#jira none
#preflight 63c03173c77f50e3b47ed2bd

[CL 23683231 by Charles deRousiers in ue5-main branch]
2023-01-13 14:19:13 -05:00
massimo tristano
7043371116 Added check that reports errors if a parameter is added in a Material bound to different values. This should not be allowed.
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]
2023-01-13 05:36:38 -05:00
massimo tristano
9e4720a5bd Undo changelist 23624757.
#preflight 63bd624ad862fdd347d9fda2

[CL 23625729 by massimo tristano in ue5-main branch]
2023-01-10 08:18:49 -05:00
massimo tristano
98e8affa58 Added check that reports errors if a parameter is added in a Material bound to different values. This should not be allowed.
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]
2023-01-10 04:45:56 -05:00
massimo tristano
a8dc32e175 Undo changelist 23611477
#preflight 63bc20b068068a8bd6e6cca0

[CL 23611763 by massimo tristano in ue5-main branch]
2023-01-09 09:24:30 -05:00
massimo tristano
755e6df654 Added check that reports errors if a parameter is added in a Material bound to different values. This should not be allowed.
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]
2023-01-09 08:52:28 -05:00
christopher waters
f8abec7a8e Material header dependency cleanup
- Removing MaterialAttributeDefinitionMap and MaterialRenderProxy from MaterialShared.h
- Removing MaterialShared from Material.h

#preflight 639cbb35776b61ba3b82f03e

[CL 23541603 by christopher waters in ue5-main branch]
2022-12-16 16:24:02 -05:00
christopher waters
7215f7d4ec Fully moving MaterialDomain to its own header.
#jira none
#preflight 639b4dc335203bc7aa695078

[CL 23531533 by christopher waters in ue5-main branch]
2022-12-15 16:01:51 -05:00
Charles deRousiers
5c44593f0d Abstract blendmode lookup to ease blend mode compatibility with Strata.
#rb sebastien.hillaire
#jira none
#preflight 6398964335203bc7aa695e10

[CL 23492252 by Charles deRousiers in ue5-main branch]
2022-12-13 10:44:43 -05:00
christopher waters
6e30ddb01e Dependency cleanup around DataDrivenShaderPlatformInfo and a few other headers.
#preflight 63921e6a67018b14b5925197

[CL 23454104 by christopher waters in ue5-main branch]
2022-12-08 15:35:35 -05:00
Sebastien Hillaire
29639be6fb Reworked distortion to:
- 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]
2022-12-02 03:49:35 -05:00
Charles deRousiers
5b21c9a8e4 Change how thickness is setup on Strata material.
* Add a new thickness input on the root node for thin surface
* Add a new thickness input on vertical layer operator, to provide the thickness of the 'layered' material
* Mark Slab thickness input as deprecated, for converting existing asset once this CL is checked in.

#rb sebastien.hillaire
#jira none
#preflight 638903020e4613faedc9e8be

[CL 23358938 by Charles deRousiers in ue5-main branch]
2022-12-01 14:52:03 -05:00
Charles deRousiers
9f9607a23f Add IsThinSurface on root node for flagging surface with thin shell (i.e., hollow interrior).
The defines a clear semantic for how thickness of a bottom layer should be handled with Strata. This CL only pipes the data for the various parts. A following CL will add a thickness property on the root node.

#rb none
#jira none
#preflight 638672dd4004f73f62ea9600
#fyi sebastien.hillaire

[CL 23324261 by Charles deRousiers in ue5-main branch]
2022-11-30 02:10:42 -05:00