- Removed hardcoded element type arrays (Vertices, Edges, Triangles etc.). Mesh element types can now be arbitrarily added, with any number of channels.
- Mesh element containers have a much leaner format; instead of sparse arrays, they are now represented by a simple bitarray, determining whether an index is used or not. Consequently, mesh topology is now entirely described with the attribute system, e.g. edge start and end vertices, triangle vertices, etc.
- Support added for attributes of arbitrary dimensions, e.g. float[4] or int[2].
- Support added for attributes which index into another mesh element container.
- Added FMeshElementIndexer: this is an efficient container for maintaining backward references from one element type to another; for example, edges have an attribute specifying which vertices are at each end (an attribute of type FVertexID[2]). With an indexer, it is possible to look up which edges contain a given vertex, even though this is not explicitly stored. Indexers are designed to do minimal allocations and update lazily and in batch when necessary.
- Added support for preserving UV topology in static meshes. UVs are now a first-class element type which may be indexed directly from triangles.
- Added the facility to access the underlying array in an attribute array directly.
- Triangles now directly reference their vertex, edge and UV IDs. Vertex instances are to be deprecated.
- Changed various systems to be triangle-centric rather than polygon-centric, as this is faster. Triangles are presumed to be the elementary face type in a MeshDescription, even if polygons are still supported. The concept of polygons will be somewhat shifted to mean a group of triangles which should be treated collectively for editing purposes.
- Optimised normal/tangent generation and FBX import.
- Deprecated EditableMesh, MeshEditor and StaticMeshEditorExtension plugins - these are to be removed, but they still have certain hooks in place which need removing.
#rb
[CL 13568702 by Richard TalbotWatkin in ue5-main branch]
Revit: Fix export time field in exported datasmith scene
#jira UE-88083
#rb none
#ROBOMERGE-SOURCE: CL 11604300 in //UE4/Release-4.25/... via CL 11604316
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v655-11596533)
[CL 11604350 by johan duparc in Main branch]
Fixing memory leak when GC is not called in datasmith mesh exporter
#jira UE-87989
JeanMichel.Dignard
#rb JeanMichel.Dignard
#ROBOMERGE-SOURCE: CL 11461470 in //UE4/Release-4.25/...
#ROBOMERGE-BOT: RELEASE (Release-4.25 -> Release-4.25Plus) (v654-11333218)
[CL 11461475 by benoit deschenes in 4.25-Plus branch]
#jira UE-85968
#lockdown cristina.riveron
#rb JeanMichel.Dignard
#ROBOMERGE-SOURCE: CL 10953419 in //UE4/Release-4.24/...
#ROBOMERGE-BOT: RELEASE (Release-4.24 -> Main) (v632-10940481)
[CL 10953422 by johan duparc in Main branch]
#rnx
#rb none
#ROBOMERGE-SOURCE: CL 10869240 via CL 10869516 via CL 10869902
#ROBOMERGE-BOT: (v613-10869866)
[CL 10870584 by ryan durand in Main branch]
#ROBOMERGE-SOURCE: CL 9842654 in //UE4/Release-4.24/...
#ROBOMERGE-BOT: RELEASE (Release-4.24 -> Main) (v546-9757112)
[CL 9842661 by daniel coelho in Main branch]
- 47s -> 16 s for DATASET-0008a (textures only)
From dev-enterprise[at]9487655,9527316,9538821
#jira UE-82139
#rb Johan.Duparc, JeanMichel.Dignard
#ROBOMERGE-SOURCE: CL 9730898 in //UE4/Release-4.24/...
#ROBOMERGE-BOT: RELEASE (Release-4.24 -> Main) (v539-9700858)
[CL 9730901 by danny couture in Main branch]
#jira none
#rb JeanLuc.Corenthin, JeanMichel.Dignard
#ROBOMERGE-SOURCE: CL 9703162 in //UE4/Release-4.24/...
#ROBOMERGE-BOT: RELEASE (Release-4.24 -> Main) (v539-9700858)
[CL 9703169 by johan duparc in Main branch]
VariantManager: Move files to VariantManagerContentEditor
VariantManager: Separate EPropertyValueCategory enum to decouple DatasmithImporter and VariantManager
VariantManager: UI and minor tweaks
- Better way of detecting when we should use the component name or property name for root components;
- Fix lighter gray stripe below actor nodes in 4.24;
- Change auto-expose icon to a standard 'record' icon;
VariantManager: Fix build error for Mac
#jira UE-81398
#jira UE-81500
#jira UE-81038
#jira UE-81571
#rb Daniel.Coelho
[CL 9654886 by JeanMichel Dignard in 4.24 branch]