Commit Graph

63 Commits

Author SHA1 Message Date
brian karis
a3197c3b46 Fix for simplifier reducing down to no triangles.
#jira UE-107193

#ROBOMERGE-SOURCE: CL 15480150 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)

[CL 15480179 by brian karis in ue5-main branch]
2021-02-19 19:30:07 -04:00
Marcus Wassmer
3b81cf8201 Merging using //UE5/Main_to_//UE5/Release-Engine-Staging @14384769
autoresolved files
#rb none

[CL 14384911 by Marcus Wassmer in ue5-main branch]
2020-09-24 00:43:27 -04:00
Marc Audy
a7c9001a94 Merging //UE5/Release-Engine-Staging to Main (//UE5/Main) @ 14075166
#rb
#rnx

[CL 14075271 by Marc Audy in ue5-main branch]
2020-08-11 01:36:57 -04:00
Richard TalbotWatkin
51d4cb3f66 Fully deprecated old MeshDescription APIs.
Prepared direct attribute access for deprecation, preferring use of APIs to access static mesh attributes.
Fixed recently merged Enterprise code to comply with new APIs.
Changed all tools to use triangle-centric iteration where possible.
Added new MeshAttributeArray APIs for querying attribute flags, and added a new Mandatory flag.
Various bug fixes.
#rb Alexis.Matte

[CL 13873755 by Richard TalbotWatkin in ue5-main branch]
2020-07-16 08:23:15 -04:00
Michal Valient
95d19f95b1 [REVERB] Merging //UE4/Private-Reverb-Development@13832732
#rb graham.wihlidal, rune.stubbe, brian.karis, andrew.lauritzen, jeff.farris

[CL 13834854 by Michal Valient in ue5-main branch]
2020-07-06 18:58:26 -04:00
Richard TalbotWatkin
4884bf9d9a First pass of MeshDescription API and format refactor.
- 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]
2020-05-28 10:56:57 -04:00
JeanMichel Dignard
84facd6d15 Copy from dev-enterprise cl 11097196
#rb none
#rnx

[CL 11099277 by JeanMichel Dignard in Dev-Tools-Staging branch]
2020-01-23 16:28:59 -05:00
ryan durand
471d972e62 Updating copyright for Engine Developer.
#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]
2019-12-26 15:32:37 -05:00
alexis matte
975c886870 Make changing section user data (cast shadow, recompute, enabled...) call posteditchange. This is like the old workflow.
#rb david.hill
#jira UE-81352
#rnx

#ROBOMERGE-SOURCE: CL 9696480 in //UE4/Release-4.24/...
#ROBOMERGE-BOT: RELEASE (Release-4.24 -> Main) (v538-9681622)

[CL 9696534 by alexis matte in Main branch]
2019-10-18 15:42:03 -04:00
Stefan Boberg
1f813eb516 Copying //UE4/Dev-Core to Main (//UE4/Main)
#rb many

[CL 9405827 by Stefan Boberg in Main branch]
2019-10-03 16:26:48 -04:00
Chris Gagnon
8ab0638182 Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main) for 4.24
#rb none

[CL 9325047 by Chris Gagnon in Main branch]
2019-10-01 20:41:42 -04:00
david hill
5c2d3364ad Static Mesh Reduction: Make more robust to extreme UV values on the source mesh.
#jira UE-80939
#rb ryan.schmidt
#lockdown cristina.riveron

#ROBOMERGE-SOURCE: CL 9306694 in //UE4/Release-4.23/...
#ROBOMERGE-BOT: RELEASE (Release-4.23 -> Main) (v455-9298202)

[CL 9306696 by david hill in Main branch]
2019-09-30 16:14:15 -04:00
Chris Gagnon
2e87118a18 Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main) Interim 4.24.
#rb none

[CL 8614014 by Chris Gagnon in Main branch]
2019-09-10 11:35:20 -04:00
alexis matte
3258c9c9fa Make sure reduce LOD iterate the polygons in the same order has FOverlappingCorner
#jira UE-70292
#rb Brian.Karis

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: alexis.matte
#ROBOMERGE-SOURCE: CL 5312959 in //UE4/Release-4.22/... via CL 5317545
#ROBOMERGE-BOT: CORE (Main -> Dev-Core)

[CL 5336061 by alexis matte in Dev-Core branch]
2019-03-07 01:19:41 -05:00
Alexis Matte
874100a754 Make sure reduce LOD iterate the polygons in the same order has FOverlappingCorner
#jira UE-70292
#rb Brian.Karis

#ROBOMERGE-SOURCE: CL 5312959 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)

[CL 5317545 by Alexis Matte in Main branch]
2019-03-06 14:51:54 -05:00
Richard TalbotWatkin
f2a3f32edf Change to FMeshDescription API. CreatePolygon[WithID] now takes a simple array of vertex instances instead of FMeshDescription::ContourPoint, hence there is no need to specify corresponding edge IDs. Any edges which do not exist in the mesh description will be automatically created by CreatePolygon, and their IDs returned.
Fixed up all code to use the new method, fixed a few bugs.
#rb Alexis.Matte

[CL 4750082 by Richard TalbotWatkin in Dev-Editor branch]
2019-01-18 06:37:35 -05:00
Chris Gagnon
1a3bf5caf1 Merging The Engine directory from //UE4/Dev-Main to //UE4/Dev-Editor upto CL 4698813
#rb none

[CL 4720826 by Chris Gagnon in Dev-Editor branch]
2019-01-14 16:55:55 -05:00
Chris Gagnon
8fc25ea18e Merging //UE4/Dev-Main to Dev-Editor (//UE4/Dev-Editor)
#rb none

[CL 4676797 by Chris Gagnon in Dev-Editor branch]
2019-01-02 14:54:39 -05:00
Matt Kuhlenschmidt
cde8160913 Merging //UE4/Dev-Main to Dev-Editor (//UE4/Dev-Editor)
#rb none

[CL 4572510 by Matt Kuhlenschmidt in Dev-Editor branch]
2018-11-16 11:15:08 -05:00
Alexis Matte
e58ee4babb Cleanup the SectionInfoMap when we remove LODs
#rb none
#jira UE-66076

[CL 4531925 by Alexis Matte in Dev-Editor branch]
2018-11-01 12:26:35 -04:00
Alexis Matte
576ac6829b Deprecate FRawMesh - Convert welding threshold to use FMeshDescription
#rb none
#jira UE-65707

[CL 4502755 by Alexis Matte in Dev-Editor branch]
2018-10-24 13:25:04 -04:00
Alexis Matte
479dd7f3ea Deprecate FRawMesh - ReductionInterface
#rb none
#jira UE-65679

[CL 4501468 by Alexis Matte in Dev-Editor branch]
2018-10-24 08:46:08 -04:00
Yuriy ODonnell
2fce49e85a Moved duplicated code from MeshUtilities and MeshDescriptionOperations (FLayoutUV, FAllocator2D, FOverlappingCorners, etc.) into a new single module MeshUtilitiesCommon.
Add a generic opaque mesh view interface FLayoutUV::IMeshView to abstract mesh data access and allow FLayoutUV to be used with any mesh type in any module.
Replaced few instances of using an old version of overlapping corners data structure (multi-map) with new specialized FOverlappingCorners container.

#rb Alexis.Matte
#rb Brian.Karis

[CL 4242975 by Yuriy ODonnell in Dev-Editor branch]
2018-07-31 05:49:40 -04:00
Richard TalbotWatkin
24a2a24011 New attribute array API.
Fixed some flaws in the original API, deprecated various methods, and introduced some new features.
- Now attribute arrays are accessed via TAttributesRef or TAttributesView (and corresponding const versions). These value types hold references to attribute arrays, and individual elements can be accessed by their element ID and attribute index. Using a value type is safer than the previous method which required assignment to a const-ref (and not doing so would take a temporary copy of the attribute array).
- The attribute set has been totally flattened, so all attributes of different types are added to the same container. This greatly improves compile times, prevents attributes from being created with the same name but different types, and permits the view feature.
- The class hierarchy has changed to have generic base classes where possible with no particular ElementID type. This reduces the code footprint by no longer generating nearly identical copies of templated methods.
- A TAttributesView allows the user to access an attribute array by the type of their choosing, regardless of its actual type. For example, the Normal attribute may be registered with type FPackedVector, but accessed as if it was an FVector. This allows us to move away from very strong typing, and instead transparently store attributes of a more efficient size, while the user is not affected.
- A transient attribute flag has been added, to denote that a particular attribute should not be saved.
#rb none

[CL 4226081 by Richard TalbotWatkin in Dev-Editor branch]
2018-07-20 18:58:37 -04:00
richard talbotwatkin
96d7d9dbfc Copied from Dev-Editor CL 4118758
- Refactor to put UStaticMesh Mesh Descriptions in a separate object which is not loaded by default, but which can be requested when needed. This needs to be kept in sync with the number of SourceModel LODs.
- Various refactors to import/building.
- Changed UMeshDescription to FMeshDescription, and made its preferred semantics pass-by-reference rather than by pointer.
- Deprecated UMeshDescription.
#rb Alexis.Matte
#jira

#ROBOMERGE-SOURCE: CL 4135475 in //UE4/Release-4.20/...
#ROBOMERGE-BOT: RELEASE (Release-4.20 -> Release-Staging-4.20)
#ROBOMERGE-AUTHOR: richard.talbotwatkin

[CL 4135477 by richard talbotwatkin in Staging-4.20 branch]
2018-06-18 12:18:21 -04:00