Commit Graph

49 Commits

Author SHA1 Message Date
alexis matte
862785cc6e Interchange: Move files out of experimental
#jira none
#rb jeanmichel.dignard
#rnx
#preflight 631b7b3cec45fbf3d7807ee1

[CL 21927016 by alexis matte in ue5-main branch]
2022-09-09 16:13:32 -04:00
alexis matte
0047e0dcf4 Move all interchange code files under experimental folder.
#jira UE-133267
#rb Julien.StJean
[FYI] richard.talbotwatkin
#rnx

#ROBOMERGE-AUTHOR: alexis.matte
#ROBOMERGE-SOURCE: CL 18018188 in //UE5/Release-5.0/... via CL 18018406 via CL 18018624
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v885-17909292)

[CL 18018864 by alexis matte in ue5-main branch]
2021-11-02 10:31:06 -04:00
JeanMichel Dignard
e9b5d2f566 Interchange scene import
- Support different types of lights.
- Set the scene components mobility in the pipeline.
- Made a generic macro to apply an attribute to a FProperty where the attribute and property names can be different. Supports nested script structs.
- Renamed ApplyAllCustomAttributeToAsset to ApplyAllCustomAttributeToObject.
- Added support for Camera physical attributes (focal length, sensor width & height) from FBX.

#rb Alexis.Matte, Julien.StJean, Richard.TalbotWatkin
#preflight 615cb7b1bb992a0001e1ecc4

[CL 17728564 by JeanMichel Dignard in ue5-main branch]
2021-10-05 17:50:09 -04:00
Julien StJean
eefb0298b8 Added the test to validate if a texture is a normal map to the interchange generic pipeline.
Added some function to query the texture compiler to see if a texture is being compiled.

#jira UETOOL-3856
#rb Alexis.Matte
#preflight 61264df145848f0001473a6b

[CL 17318068 by Julien StJean in ue5-main branch]
2021-08-26 10:49:21 -04:00
JeanMichel Dignard
5a7f4ac2c8 Interchange scene import: Set mesh on static and skeletal mesh components
- Renamed Target Asset Uids to Target Node Uids and used it bidirectionaly.
- Target Node Uids is mutable so that a const node graph (translated nodes) can still track which factory nodes its being used by.
- Only register the actor components in the Interchange completion task so that we know that the assets are ready.
- Added transform compensation for FBX cameras and lights.

#rb Alexis.Matte

[CL 17317045 by JeanMichel Dignard in ue5-main branch]
2021-08-26 09:39:29 -04:00
JeanMichel Dignard
1cd80480a7 Interchange Level import
- Added a new project setting to use Interchange for "import into level"
- It currently only spawns empty actors, in hierarchy, with the correct transforms.

#rb Alexis.Matte, Richard.TalbotWatkin, Julien.Stjean

[CL 17117529 by JeanMichel Dignard in ue5-main branch]
2021-08-10 11:47:45 -04:00
Julien StJean
2f234d3c40 Making the reimport of a texture by interchange thread safe.
Changed the texture payloads so that they use the new unique buffer.
Refactored the blocked texture payload and the UDIM translator to support the new payload.
Added some functions to the FTextureSource so that it can receive a FSharedBuffer instead of copying the data into the payload.
Removed the const requirement from the UInterchangeFactoryBase main functions. It was needed so that I can store the texture payload in the function CreateAsset and then consume it in the function PreImportPreCompletedCallback. Also reporting messages in the factory does affect the state of the factory.
The Interface IImageWrapper has a new function to get the raw data into an ArrayView. For now the interface provides a default implementation but I would like to make it abstract when all the existing wrapper will have an implementation for it.

#jira UETOOL-3834
#rb Alexis.Matte
#preflight 610877d603d30300010f7840

[CL 17023158 by Julien StJean in ue5-main branch]
2021-08-02 19:45:34 -04:00
Alexis Matte
9a69b646b6 Make sure creating a blueprint pipeline is possible and have access to everything it need
#jira none
#rb richard.talbotwatkin
#preflight 61016d4c5938f9000113319f

[CL 16983077 by Alexis Matte in ue5-main branch]
2021-07-28 11:58:41 -04:00
Zousar Shaker
9abf3ef937 Wrapped ObjectPtr upgrade refresh for Engine + ShooterGame
#rb none
#preflight 60f6411c35476b00018dd12c

[CL 16892864 by Zousar Shaker in ue5-main branch]
2021-07-20 00:21:34 -04:00
JeanMichel Dignard
4a09508a5b InterchangeBaseNode: rename GetAssetClass to GetObjectClass
#rb Alexis.Matte

[CL 16853666 by JeanMichel Dignard in ue5-main branch]
2021-07-14 15:15:19 -04:00
Alexis Matte
9fc25d96ca In Interchange, add skeleton and physics asset import options to the generic pipeline. Those option allow the user to specify if we create or use an existing asset for skeleton and physics.
#jira UETOOL-3603
#rb richard.talbotwatkin

[CL 16841336 by Alexis Matte in ue5-main branch]
2021-07-13 15:37:01 -04:00
Richard TalbotWatkin
65a8fca3bc Changed checks to ensures to prevent irritating editor crashes if InterchangeWorker isn't up to date.
#rb none

[CL 16830749 by Richard TalbotWatkin in ue5-main branch]
2021-07-12 16:10:27 -04:00
Richard TalbotWatkin
20431c53cd Fixed static analysis warning.
#rb none

[CL 16825387 by Richard TalbotWatkin in ue5-main branch]
2021-07-12 10:44:04 -04:00
Richard TalbotWatkin
177525dba9 First pass implementaiton of a message passing system for Interchange. This permits messages, warnings and errors to be output from translators, pipelines and factories, as well as from external processes via the Interchange dispatcher.
Implemented UI tab widget for dislaying import results.
Implemented basic static mesh import, excluding collision import.
Various API tweaks, to accomodate the message passing, plus various bugfixes.
#rb Alexis.Matte

[CL 16822676 by Richard TalbotWatkin in ue5-main branch]
2021-07-12 05:32:06 -04:00
Alexis Matte
af18cd8cfa Pipeline workflows prototype. This is a first implementation of the interchange pipeline selection workflow when users import files with interchange.
- Interchange per project settings allow user to create pipeline stacks and to override the pipeline selector UI
- First draft of the generic pipeline selector UI dialog
- Pipeline settings are saved in the config ini files
- The importAssetData now contains the pipelines settings so we can reuse the same settings when we will do the re import

#jira UETOOL-3440
#rb julien.stjean

[CL 16416864 by Alexis Matte in ue5-main branch]
2021-05-21 08:44:26 -04:00
Alexis Matte
eecf9189e4 Add generic pipeline options: "BakeMeshes", "ImportStaticMeshes", "CombineStaticMeshes", "ImportSkeletalMeshes", "CombineSkeletalMeshes".
Create a pipeline meshes utilities that allow the user to query all meshes (static, skeletal, both) and also query combined meshes (static and skeletal)
#jira UETOOL-3461, UETOOL-3462
#rb richard.talbotwatkin

[CL 16247773 by Alexis Matte in ue5-main branch]
2021-05-10 09:34:00 -04:00
Alexis Matte
febf96d0e1 Refactor Interchange graph nodes to follow the new design. We now have translated nodes and factory nodes. The translated node are the source description and the factory nodes are the pipeline description telling the factory how to import the translated source nodes.
#rb richard.talbotwatkin
#jira UE-TOOL-3246

[CL 16144565 by Alexis Matte in ue5-main branch]
2021-04-28 11:34:07 -04:00
Alexis Matte
52ffae83be Add an optionnal specialized type array to the interchange scene node, so we can tell a scene node act like a special type.
This is useful for type that do not have any payload and justa couple properties like LOD group, joint, the scene node will be able to return his specialized type.
#jira UETOOL-3248
#rb richard.talbotwatkin

[CL 16055348 by Alexis Matte in ue5-main branch]
2021-04-19 17:16:28 -04:00
Alexis Matte
cfa83cb746 Create a graph inspector pipeline to be able to debug interchange graph
#jira UETOOL-3246
#rb richard.talbotwatkin

[CL 16004527 by Alexis Matte in ue5-main branch]
2021-04-14 09:34:33 -04:00
Zousar Shaker
3b4c8fc1c5 Automated wrapped object pointer upgrade for Engine + ShooterGame + ShooterGame referenced plugins
#rb none

[CL 15224650 by Zousar Shaker in ue5-main branch]
2021-01-27 17:40:25 -04:00
Zousar Shaker
d9ee6d9aab Prototype Wrapped Object Pointers (ObjectHandle/ObjectPtr)
Call-site changes for non-scalar wrapped object pointer upgrades in Engine + Shootergame

#rb devin.doucette

[CL 15201149 by Zousar Shaker in ue5-main branch]
2021-01-26 02:45:20 -04:00
Julien StJean
37ff995315 Adding UDIM support to the interchange framework.
I used a confidential dataset to benchmark the performence. 112 png files weighting 3.2 GB.

The old import system took 75.96 seconds to import the data while blocking the gamethread.

The Interchange system took 15.06 seconds to import the data whitout blocking the game thread, but my initial testing found that it resquested around 200 MB of memory then the old system. It's possible that this is due to the memory pool of each thread (it need investigation before jumping to that conclusion).

Those test where made using a machine with a Xeon E5-2643 (6 cores/ 12 Threads)


#rb Alexis.Matte
#jira UEENT-3845

[CL 15164350 by Julien StJean in ue5-main branch]
2021-01-22 12:20:21 -04:00
Marc Audy
bc88b73a29 Merge Release-Engine-Staging to Main @ CL# 15151250
Represents UE4/Main @ 15133763

[CL 15158774 by Marc Audy in ue5-main branch]
2021-01-21 16:22:06 -04:00
Alexis Matte
17b81587e8 Make sure the source file always use absolute path.
#jira UE-106421
#rb julien.stjean

[CL 15154077 by Alexis Matte in ue5-main branch]
2021-01-21 10:27:23 -04:00
Alexis Matte
6119acdacb Add a generic mesh pipeline for Interchange, it allow to add meshes import options
#rb richard.talbotwatkin
#jira UEENT-3853

[CL 15012363 by Alexis Matte in ue5-main branch]
2021-01-07 13:32:07 -04:00