Commit Graph

350 Commits

Author SHA1 Message Date
jon olick
fdeed47cb2 Oodle JPEG format support. Smaller UASSETs and much more hardened security focus by using Oodle as a backend.
#jira

[CL 27842762 by jon olick in ue5-main branch]
2023-09-13 14:47:22 -04:00
Danny Kabrane
a74c2fd074 Use of Standard Surface substrate material function from Engine instead of the one in Interchange. Keeping the ones in Interchange for testing for the moment.
#rb none

[CL 27833897 by Danny Kabrane in ue5-main branch]
2023-09-13 11:49:04 -04:00
alexis matte
f731799c3e Interchange: Make sure the name clash in fbx do not use the unique id of the node since there can be conflict here also.
#jira UE-194070
#rb jeanluc.corenthin
#rnx

[CL 27832224 by alexis matte in ue5-main branch]
2023-09-13 11:12:54 -04:00
alexis matte
babd53ca83 Interchange: Fix animation issues
- 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]
2023-09-13 11:11:57 -04:00
alexis matte
662eba4aef Add automatic skeletal mesh detection if there is some animations
#jira UE-192188
#rb jeanluc.corenthin
#rnx

[CL 27831534 by alexis matte in ue5-main branch]
2023-09-13 10:51:36 -04:00
Danny Kabrane
905db1ee8e MaterialX:
- 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]
2023-09-12 01:00:44 -04:00
Danny Kabrane
1226cbe3b1 MaterialX:
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]
2023-09-12 00:34:42 -04:00
Danny Kabrane
62a894776d MaterialX:
- 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]
2023-09-11 05:45:10 -04:00
Danny Kabrane
222ea3f6d3 - Fix wrong tabulations in MaterialXPipeline
- 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]
2023-09-11 04:50:34 -04:00
balazs toereki
e72f12d6d8 [Interchange - glTF] khr_materials_specular processing fixes
#rb JeanLuc.Corenthin

[CL 27714926 by balazs toereki in ue5-main branch]
2023-09-08 12:20:57 -04:00
Danny Kabrane
f47648988b Fix wrong typo of MX_DielectricBSDF Material Function
#rb none

[CL 27668818 by Danny Kabrane in ue5-main branch]
2023-09-07 07:09:12 -04:00
Danny Kabrane
4ce7b3d3ed MaterialX Pipeline:
- 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]
2023-09-07 00:47:47 -04:00
balazs toereki
7a5d6735b6 [Interchange] MaterialInstancing fixes + test fixes.
[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]
2023-09-06 11:20:20 -04:00
jian ru
1d44e35480 Work-in-progress changes for the new HLSL translator. This change doesn't impact current or future projects unless the new translator is enabled. Implemented GenerateHLSLExpression interface for numerous UMaterialExpression variants. Added a hash map to reduce the time needed to prepare complex HLSL trees. Fixed a bug where FExpressionSetStructField::PrepareValue can cause unrequested struct fields be prepared. Fixed an error in FExpressionLocalPHI::PrepareValue caused by some live values being nullptrs. Updated GenerateMaterialTemplateHLSL to also use named paramters.
#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]
2023-09-05 20:57:00 -04:00
alexis matte
b99ec591e6 Interchange: Fix fbx importer to make sure joint without cluster use the bindpose to get the global bind transform.
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]
2023-09-05 16:01:44 -04:00
alexis matte
f0e40516ca (Undo Backout, fix mac build) Interchange: support the skeletal mesh VertexAttributes import feature.
#jira UE-191224
#rb jeanluc.corenthin
#rnx

[CL 27608093 by alexis matte in ue5-main branch]
2023-09-05 15:28:23 -04:00
alexis matte
5dd3af60c4 Interchange: Make sure fbx node with no attribute but participating to skinning is view has a joint. When importing a scene, do not create staticmesh component if the mesh node is skinned.
#jira UE-194279
#rb jeanluc.corenthin
#rnx

[CL 27607475 by alexis matte in ue5-main branch]
2023-09-05 15:19:13 -04:00
alexis matte
d72c3696be [Backout] - CL27604738, error on mac build
[FYI] Alexis.Matte
Original CL Desc
-----------------------------------------------------------------
Interchange: support the skeletal mesh VertexAttributes import feature.
#jira UE-191224
#rb jeanluc.corenthin
#rnx

[CL 27605829 by alexis matte in ue5-main branch]
2023-09-05 14:32:49 -04:00
alexis matte
4c975936b3 Interchange: support the skeletal mesh VertexAttributes import feature.
#jira UE-191224
#rb jeanluc.corenthin
#rnx

[CL 27604792 by alexis matte in ue5-main branch]
2023-09-05 14:07:14 -04:00
alexis matte
fff4fb747f Interchange: Allow translation to happen before openning the import dialog.
Filter the pipelines options with the translated data.

#jira UE-190402
#rb jeanluc.corenthin
#rnx

[CL 27596878 by alexis matte in ue5-main branch]
2023-09-05 10:58:05 -04:00
marc audy
65de35fdfb Lof elements that were not renamed yet.
- MSM_Substrate
- MCT_Substrate
- FStrataMaterialInput

#rb charles.derousiers

[CL 27563163 by marc audy in ue5-main branch]
2023-09-01 15:06:19 -04:00
alexis matte
7c978de0e6 Make sure all options from the import system are supported properly.
#jira UE-193922
#rb jeanluc.corenthin
#rnx

[CL 27524703 by alexis matte in ue5-main branch]
2023-08-31 11:39:42 -04:00
Balazs Toereki
cce91454d5 [Interchange] Fixing Mesh transform baking for SkeletalMeshes.
#jira UE-194183
#rb Alexis.Matte JeanLuc.Corenthin

[CL 27496615 by Balazs Toereki in ue5-main branch]
2023-08-30 15:54:48 -04:00
Balazs Toereki
04763c7da9 [Interchange - glTF] Animation handling refactor.
[Interchange - glTF] Animation fixes for LocalBindPoses without animations.

#jira UE-193923
#rb JeanLuc.Corenthin

[CL 27492346 by Balazs Toereki in ue5-main branch]
2023-08-30 14:28:25 -04:00
Alexis Matte
f34964a12e Interchange: Fix a crash when translating texture during mesh import. We must avoid using FGCObjectScopeGuard outside the game thread.
#jira none
#rb jeanluc.corenthin
#rnx

[CL 27350187 by Alexis Matte in ue5-main branch]
2023-08-24 14:03:06 -04:00