Commit Graph

75 Commits

Author SHA1 Message Date
Max Chen
61603c83e4 Merging //UE4/Dev-Main to Dev-Editor (//UE4/Dev-Editor) at CL#8390086
#rb none

[CL 8393238 by Max Chen in Dev-Editor branch]
2019-09-01 02:03:35 -04:00
zzz77
97e4a99783 PR #6033: Fixes for IntelliSense (Contributed by zzz77)
#rb none
#rnx

[CL 7308593 by Ben Marsh in Dev-Build branch]
2019-07-15 10:09:44 -04:00
Richard TalbotWatkin
1ca56fc5b2 MeshDescription now uses triangles as its primary face representation. They can and should be used in preference to polygons when a mesh is known to be entirely triangulated, as they are quicker, and can be used in exactly the same way.
Creating a triangle will also create a 'shadow' polygon for backward compatibility, although this is omitted when serializing.
As with polygons, any missing edges are created when creating a new triangle, and operations such as adjacency are available to triangles, just as for polygons.
The native serialization format for MeshDescription is now based around triangles.
Polygons of arbitrary number of edges may still be represented, and when created, will automatically generate the appropriate number of triangles.  Polygons of more than three sides automatically generate 'internal edges', which are owned by the polygon, and which will be regenerated if the polygon is retriangulated. Internal edges are otherwise not distinct from other edges, and can be used to determine connected triangles or vertices.
Direct access to public members of mesh element classes (FMeshVertex, etc) is now deprecated. In particular, vertex instances and edges now hold a list of connected triangles, and the ConnectedPolygons member is deprecated and will be removed (as this data can be derived from the ConnectedTriangles list).
Improved the MeshDescription API, providing more operations, and allowing arrays with different allocators to be provided as results containers.
Fixed several MeshEditing operations.
Added MeshDescription unit tests.
#rb none

[CL 7099758 by Richard TalbotWatkin in Dev-Editor branch]
2019-06-20 08:20:20 -04:00
Chris Gagnon
00f8b72a0b Merging //UE4/Dev-Main to Dev-Editor (//UE4/Dev-Editor)
#rb none

[CL 5602170 by Chris Gagnon in Dev-Editor branch]
2019-03-27 15:03:08 -04:00
alexis matte
97978573ca Make sure reduce LOD iterate the polygons in the same order has FOverlappingCorner
#jira UE-70292
#rb Brian.Karis

#ROBOMERGE-OWNER: ben.marsh
#ROBOMERGE-AUTHOR: alexis.matte
#ROBOMERGE-SOURCE: CL 5312959 in //UE4/Release-4.22/... via CL 5317545
#ROBOMERGE-BOT: BUILD (Main -> Dev-Build)

[CL 5331117 by alexis matte in Dev-Build branch]
2019-03-06 18:42:32 -05:00
Ben Marsh
43317388da Merging //UE4/Dev-Main to Dev-Build (//UE4/Dev-Build)
#rb none
#rnx

[CL 4867651 by Ben Marsh in Dev-Build branch]
2019-02-01 11:34:13 -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
Ben Marsh
c09b6d7f18 Merge from //UE4/Main.
#rb none
#rnx

[CL 4701155 by Ben Marsh in Dev-Build branch]
2019-01-10 11:10:29 -05:00
Ben Marsh
287fa130a3 Merging //UE4/Dev-Main to Dev-Build (//UE4/Dev-Build)
#rb none
#rnx

[CL 4677654 by Ben Marsh in Dev-Build branch]
2019-01-02 20:42:29 -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
Ben Marsh
530369c613 Merging //UE4/Dev-Main to Dev-Build (//UE4/Dev-Build)
#rb none
#rnx

[CL 4662695 by Ben Marsh in Dev-Build branch]
2018-12-14 14:49:12 -05:00
Ben Marsh
b0da1f4fe7 Merging //UE4/Dev-Main to Dev-Build (//UE4/Dev-Build)
#rb none

[CL 4577636 by Ben Marsh in Dev-Build branch]
2018-11-19 10:12:17 -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
richard talbotwatkin
7608b854ab Undo //UE4/Release-4.20/Engine/... changelist 4135306
#rb none
#jira

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

[CL 4135398 by richard talbotwatkin in Staging-4.20 branch]
2018-06-18 11:53:46 -04:00
richard talbotwatkin
b4b7fa924c 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 4135306 in //UE4/Release-4.20/...
#ROBOMERGE-BOT: RELEASE (Release-4.20 -> Release-Staging-4.20)
#ROBOMERGE-AUTHOR: richard.talbotwatkin

[CL 4135311 by richard talbotwatkin in Staging-4.20 branch]
2018-06-18 11:27:18 -04:00
alexis matte
7b4957078a Fix the quadric mesh reduction
#jira UE-60260
#jira UE-60259
#jira UE-60258
#rb rex.hill

#ROBOMERGE-SOURCE: CL 4127989 in //UE4/Release-4.20/...
#ROBOMERGE-BOT: RELEASE (Release-4.20 -> Release-Staging-4.20)
#ROBOMERGE-AUTHOR: alexis.matte

[CL 4127990 by alexis matte in Staging-4.20 branch]
2018-06-13 15:10:24 -04:00
jerome delattre
9dcdc6c566 #ROBOMERGE-AUTHOR: jerome.delattre
Copying //Tasks/UE4/Release-4.20-EnterpriseLateFeatures to Release-4.20 (//UE4/Release-4.20)
#rb simon.tourangeau
#jira UE-59798, UE-58919, UE-59480

#ROBOMERGE-SOURCE: CL 4119095 in //UE4/Release-4.20/...
#ROBOMERGE-BOT: RELEASE (Release-4.20 -> Release-Staging-4.20)

[CL 4119100 by jerome delattre in Staging-4.20 branch]
2018-06-07 18:49:50 -04:00
Marc Audy
d90da4ab1a Merge to Dev-Main for 4.20 @ 4090813
#rb
#rnx
#lockdown Nick.Penwarden

[CL 4091081 by Marc Audy in Main branch]
2018-05-23 21:04:31 -04:00