- Skeletal mesh factory now merge the payloadkey with the globaltransform to have a unique identifier to retrieve the payload result.
- Interchange fbx translator: triangulate all meshes before parsing the scene. This avoid bad pointer in case the fbx sdk triangulation re-assign the mesh resource.
- Interchange fbx translator: node with FbxNodeAttribute::eNull will not be consider a joint if there is no joint(FbxNodeAttribute::eSkeleton) in the parent hierarchy.
- Interchange fbx translator: the result payloads key for mesh now also merge the payloadkey with the globaltransform to have a unique identifier to retrieve the payload result.
Note this cl cannot go in 5.3 because some header have change.
#jira UE-194602
#rb jeanluc.corenthin
#rnx
[CL 27832189 by alexis matte in ue5-main branch]
- Replace Strata to Substrate for material expressions, part of the recent global renaming of Strata into Substrate
- Fix wrong typo in MaterialXPipeline, 'Dieletric' to 'Dielectric'
#fyi JeanLuc.Corenthin
#rb none
[CL 27783197 by Danny Kabrane in ue5-main branch]
Adding support for <artistic_ior>, <roughness_dual>, <roughness_anisotropy>, <glossiness_anisotropy> is automatically supported as of the inverse of roughness_anisotropy
#rb JeanLuc.Corenthin
[CL 27782788 by Danny Kabrane in ue5-main branch]
- Fixing weird rendering of materials, caused by material expression such as VertexNormalWS that should be in tangent spance when plugged to normal input
#rb JeanLuc.Corenthin
#jira UE-193647
[CL 27748425 by Danny Kabrane in ue5-main branch]
- Fix Functions/MX_Surface material function uncorrectly filtered due to output named "Output" instead of "Surface"
#rb none
#fyi JeanLuc.Corenthin
[CL 27747978 by Danny Kabrane in ue5-main branch]
- Add mapping of MaterialX pbr nodedefs to Material Functions
- Refactor MaterialX pipeline and MaterialXCustomize with a better handling of the different mappings (surface shaders, bsdf, etc.)
- Adding Material Functions placeholders for the mapping, no implemented logic in it yet, just here for the overload.
- Removing rest of unused code of MaterialX in the generic material pipeline
- Hiding MaterialSettings and Material Functions from MaterialX pipeline
- Overriding Material Functions only from Project Settings -> Engine -> Interchange MaterialX
MaterialX Translator:
- Adding support of pbr <surface> node
- Connecting outputs based on their index for multi outputs, used by node with material functions like <artistic_ior>
- Adapting the data structures for matching nodes and inputs, adding an optionalkey based on the nodegroup, particularly useful for <mix>, <add> and <multiply> nodes on BSDFs
MaterialX SurfaceShaders:
- Avoid a potential crash, by looking for an an approximate node definition during matching node and inputs resolution, since the the nodes are altered, for example nodes like blur.
MaterialX Pipeline Customization
- Making Enums in MaterialXPipelineCustomization only ReadOnly text instead of dropdowns
Substrate:
- Adding Substrate material functions counterpart of surface shaders and BSDF in the Substrate folder
- Adding support of Substrate for <surface_unlit>, <UsdPreviewSurface>
- Adding a CVar and a function in the InterchangeImportModule to check the availability of Substrate in the project settings and to enable or disable its support in Interchange.
#jira UE-179030
#rb JeanLuc.Corenthin
[CL 27665036 by Danny Kabrane in ue5-main branch]
[Interchange] GLTF test fixes.
[Interchange-glTF] turned on MaterialInstance creation on default.
#jira UE-194526 UE-194543 UE-194540
#rb JeanLuc.Corenthin
[CL 27636539 by balazs toereki in ue5-main branch]
#tests loaded a level in editor with the new translator disabled and checked visuals
[FYI] tom.holmes, john.huelin, massimo.tristano, jason.nadro
[CL 27621752 by jian ru in ue5-main branch]
Also fix a check issue if we have an empty UV channel, it was crashing the InterchangeWorker application.
#jira UE-194181
#rb jeanluc.corenthin
#rnx
[CL 27609613 by alexis matte in ue5-main branch]