Commit Graph

44 Commits

Author SHA1 Message Date
semion piskarev
40a7e56ec1 UVEditor: add ability to split bowtie verts. Fix some edge splits occasionally creating a bowtie vert on adjacent non-selected edge. Also fix some undo/redo issues especially regarding sew edges preview. Made all undo/redo selection change events broadcast for now.
#rb Nathan.Mitchell, Jimmy.Andrews
#rnx
#jira UE-133108
#preflight 61a8e8b3e01f3610f5307b4e

#ROBOMERGE-AUTHOR: semion.piskarev
#ROBOMERGE-SOURCE: CL 18355648 in //UE5/Release-5.0/... via CL 18355681
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18355709 by semion piskarev in ue5-release-engine-test branch]
2021-12-02 14:42:09 -05:00
ryan schmidt
7ff5cba6b2 GeometryProcessing:
Add FColliderMesh, minimal 3D triangle mesh representation w/ a buit-in AABBTree, intended to be used to avoid heavier FDynamicMesh3 copies in places where only a BVH is needed.
Add Ray transform/inverse functions to Transform3d

#rb semion.piskarev
#rnx
#jira none
#preflight 61a547e647752856c90b5fe9

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18325839 in //UE5/Release-5.0/... via CL 18325857
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18325877 by ryan schmidt in ue5-release-engine-test branch]
2021-11-30 11:40:16 -05:00
rinat abdrashitov
4110be33f5 UniformTesselate.h/cpp
Added a new operator to subtriangulate a mesh. Its meant to take the input mesh and quickly generate final number of new vertices and triangles and interpoloate existing attributes to them.
This is would be used to replace the current recursive subdivision (using edge splits) in the DispalceMeshTool and PNTriangles operator.

DynamicMeshOverlay.h/cpp
Refactored the implementation of GetElementAtVertex from the child class TDynamicMeshVectorOverlay to the parent TDynamicMeshOverlay. The child now calls the parent.
Added a new method GetElementIDAtVertex and use it inside GetElementAtVertex since it replaces most of the logic.

OperationsTests.cpp/ExpectedRectangle.obj
Added unit tests for the UniformTesselate operator.

#rb jimmy.andrews
#rnx
#jira none
#preflight 619c0aa4fa0b360c40779025

#ROBOMERGE-AUTHOR: rinat.abdrashitov
#ROBOMERGE-SOURCE: CL 18284521 in //UE5/Release-5.0/... via CL 18284544
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 18284556 by rinat abdrashitov in ue5-release-engine-test branch]
2021-11-24 11:09:23 -05:00
michael balzer
b8a1c9b6cf GeometryCore: Remove ExplicitUseGeometryMathTypes.h
#ROBOMERGE-AUTHOR: michael.balzer
#ROBOMERGE-SOURCE: CL 18227685 in //UE5/Release-5.0/... via CL 18229350
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 18231457 by michael balzer in ue5-release-engine-test branch]
2021-11-17 19:02:44 -05:00
aurel cordonnier
fc542f6cfd Merge from Release-Engine-Staging @ 18081189 to Release-Engine-Test
This represents UE4/Main @18073326, Release-5.0 @18081140 and Dev-PerfTest @18045971

[CL 18081471 by aurel cordonnier in ue5-release-engine-test branch]
2021-11-07 23:43:01 -05:00
semion piskarev
6b9c8102dc MeshModelingTools: Add bAllowElementFreeing to dynamic mesh overlay UnsetTriangle method to make it easier to do certain kinds of retriangulations. Add a unit test.
#rb Jimmy.Andrews
#rnx
#jira none
#preflight 61843e147edef20001d7535f

#ROBOMERGE-AUTHOR: semion.piskarev
#ROBOMERGE-SOURCE: CL 18066755 in //UE5/Release-5.0/... via CL 18066950
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v889-18060218)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 18066974 by semion piskarev in ue5-release-engine-test branch]
2021-11-04 19:58:53 -04:00
ryan schmidt
cea638d0b0 GeometryProcessing: add initial MeshBevel operation. Still a WIP, does not handle UVs at all, or interior-region vertices, and the current solve for vertex positions produces horrible-looking bevels, but the main topological problems seem to be solved.
Various utility functions added to MeshIndexUtil.h and FIndex2i/3i.
#rb jimmy.andrews
#rnx
#jira none
#preflight 617ff8d99b238e000141ff75

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18003558 in //UE5/Release-5.0/... via CL 18003639
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v885-17909292)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 18003694 by ryan schmidt in ue5-release-engine-test branch]
2021-11-01 12:01:36 -04:00
matija kecman
24a5308dc4 UV Editor: Add some tracing to the UV Editor layout tool call stack
#rb michael.balzar
#rnx
#jira none
#preflight 617a9be2d65ac900016f8c94

#ROBOMERGE-AUTHOR: matija.kecman
#ROBOMERGE-SOURCE: CL 17962942 in //UE5/Release-5.0/... via CL 17963012
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v885-17909292)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17963031 by matija kecman in ue5-release-engine-test branch]
2021-10-28 11:18:26 -04:00
michael balzer
3b2db86a02 MeshModelingToolset: Generate tangents in UAddPrimitiveTool via new function to calculcate tangents in UPreviewMesh
#jira UE-131425
#rb ryan.schmidt, lonnie.li, jimmy.andrews
#preflight 6168a740855ebb000198e232
#rnx

#ROBOMERGE-AUTHOR: michael.balzer
#ROBOMERGE-SOURCE: CL 17824560 in //UE5/Release-5.0/... via CL 17824593
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v881-17767770)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17824596 by michael balzer in ue5-release-engine-test branch]
2021-10-14 20:20:28 -04:00
aurel cordonnier
a12d56ff31 Merge from Release-Engine-Staging @ 17791557 to Release-Engine-Test
This represents UE4/Main @17774255, Release-5.0 @17791557 and Dev-PerfTest @17789485

[CL 17794212 by aurel cordonnier in ue5-release-engine-test branch]
2021-10-12 21:21:22 -04:00
jimmy andrews
501d8ae403 make dynamicmesh3 refuse to merge an edge if it would create a duplicate triangle in the mesh
+ make mesh editor's mesh append function robust to failures to append triangles

#rb tyson.brochu
#rnx
#preflight 615e15fe7e9a0100010b12a6

#ROBOMERGE-AUTHOR: jimmy.andrews
#ROBOMERGE-SOURCE: CL 17746516 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v879-17706426)
#ROBOMERGE[STARSHIP]: UE5-Release-Engine-Staging Release-5.0

[CL 17746521 by jimmy andrews in ue5-release-engine-test branch]
2021-10-07 02:47:15 -04:00
ryan schmidt
cd0d01cd68 GeometryCore: handle case where a mesh overlay has serialized unreferenced elements, ie that have no parent vertex. Existing code will try to look up the remapping w/ a parent ID of -1, causing a crash.
#rb michael.balzer
#rnx
#jira none

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 17698542 in //UE5/Release-5.0/... via CL 17698543
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v875-17642767)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17698545 by ryan schmidt in ue5-release-engine-test branch]
2021-10-01 19:06:02 -04:00
jimmy andrews
84ecdee219 fix crash on trying to sculpt after clicking 'discard attributes' in dynamic mesh sculpt tool
#jira UE-118864
#rb ryan.schmidt
#rnx
#preflight 6156f3074751730001819312

#ROBOMERGE-AUTHOR: jimmy.andrews
#ROBOMERGE-SOURCE: CL 17690602 in //UE5/Release-5.0/... via CL 17690603
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v875-17642767)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17690605 by jimmy andrews in ue5-release-engine-test branch]
2021-10-01 08:21:22 -04:00
ryan schmidt
6437ecc4a1 GeometryCore: replace all usage of GeometryCore FVector3<T> with TVector<T>, remove FVector3<T> and GVector4<T>
#rb none
#rnx
#jira none
#preflight 614ce33574f7e70001ea822b

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 17617027 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v871-17566257)
#ROBOMERGE[STARSHIP]: UE5-Release-Engine-Staging Release-5.0

[CL 17617043 by ryan schmidt in ue5-release-engine-test branch]
2021-09-23 19:38:55 -04:00
michael balzer
03c8199135 GeometryCore: Fix Non-Unity build error in dynamic mesh serialization
#rb trivial
#rnx

#ROBOMERGE-AUTHOR: michael.balzer
#ROBOMERGE-SOURCE: CL 17565335 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17565340 by michael balzer in ue5-release-engine-test branch]
2021-09-18 23:43:16 -04:00
michael balzer
9179d00f86 GeometryCore: Improved serialization for dynamic mesh data
This CL adds improved serialization for FDynamicMesh3 and its data structures:
- FDynamicMesh3, TDynamicVector, FRefCountVector, FSmallListSet, TDynamicMeshOverlay, ...
- Versioning using the UE5Main stream version
- Discarding redundant data
- Oodle compression
- Serialization of vertex skin weights
- Additional unit tests and benchmark

#jira UETOOL-3821
#preflight 6145b802c2c19000017e2f6f, 6145b81ea7246e00017b1a43

#ROBOMERGE-AUTHOR: michael.balzer
#ROBOMERGE-SOURCE: CL 17563009 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17563024 by michael balzer in ue5-release-engine-test branch]
2021-09-18 06:30:57 -04:00
jimmy andrews
7226231677 Fixes to CompactInPlace: keep ElementTriangles 1:1 with ParentMesh triangles, don't try to copy when there's no mapping, but copy back InvalidID when the (mapped) element tri is unset
#rb semion.piskarev, michael.balzer
#rnx
#preflight 6143dee9b5a4fa00017b43bb

#ROBOMERGE-AUTHOR: jimmy.andrews
#ROBOMERGE-SOURCE: CL 17552321 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17552338 by jimmy andrews in ue5-release-engine-test branch]
2021-09-17 10:55:35 -04:00
michael balzer
de95b90b29 GeometryCore: Fix TDynamicMeshOverlay<>::CompactInPlace() not compacting ElementTriangles vector
#preflight 6141714f599fd80001483188, 6141713b3c7c6700017f4923
#rnx

#ROBOMERGE-AUTHOR: michael.balzer
#ROBOMERGE-SOURCE: CL 17520863 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17520877 by michael balzer in ue5-release-engine-test branch]
2021-09-15 11:40:42 -04:00
ryan schmidt
fdf28f3d36 GeometryCore: make DynamicMesh::IsSameAs function const
#rb none
#rnx
#jira none
#preflight 6140d28630c00d0001dd6a6a

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 17507424 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17507437 by ryan schmidt in ue5-release-engine-test branch]
2021-09-14 14:20:07 -04:00
michael balzer
22b1e5b8e1 GeometryCore: Fix over-allocating triangles in FDynamicMesh3::CompactInPlace()
This CL fixes an issue where we accidentally allocate three times the amount of necessary triangles during `CompactInPlace()`. I also added a test during `CheckValidity()` to make sure that if we have dense ref counts the size of the vertex/triangle vectors is identical to the number of ref counts.

#rb jimmy.andrews
#preflight 61401b977dae460001e27ebe, 61401bbc878eef000160df3d

#ROBOMERGE-AUTHOR: michael.balzer
#ROBOMERGE-SOURCE: CL 17500874 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17500882 by michael balzer in ue5-release-engine-test branch]
2021-09-14 01:21:36 -04:00
ryan schmidt
2261125642 GeometryProcessing: force UV/normal overlays to be initialized on creation inside a DynamicMeshAttributeSet.
#rb michael.balzer
#rnx
#jira none
#preflight 6138f6289c40ec00012a7289

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 17463301 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17463750 by ryan schmidt in ue5-release-engine-test branch]
2021-09-08 16:59:20 -04:00
ryan schmidt
f6c51e0c61 GeometryCore: minor DynamicMesh fixes. Change ensure to a checkSlow in DynamicMesh3::AppendTriangle. Add FDynamicMeshOverlay::GetTriangleIfValid(). Handle unset triangles in CountVertexElements().
#rb tyson.brochu
#rnx
#jira none
#preflight 612fa9a575bca200010b8148

#ROBOMERGE-SOURCE: CL 17393286 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17393312 by ryan schmidt in ue5-release-engine-test branch]
2021-09-01 18:01:47 -04:00
nathan mitchell
0fc29c3cfb UVEditor: Add support for sew action as part of the Select/Transform tool
Additionally adds a new parameter to the DynamicMesh MergeEdge method to ignore orientation discrepancies, useful in 2D mesh manipulation, and fixes a bug in the SetTriangle method where a variable was being left uninitialized.

#rb semion.piskarev
#rnx
#jira UETOOL-3112

#ROBOMERGE-SOURCE: CL 17328444 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v861-17282326)

[CL 17328460 by nathan mitchell in ue5-release-engine-test branch]
2021-08-26 19:53:44 -04:00
ryan schmidt
e3183cb1e7 GeometryProcessing: clean up mesh timestamps.
- remove FDynamicMesh3::Timestamp (unused), rename Shape/Topology Timestamps to Shape/TopologyChangeStamp, change to atomic<uint32>
- add FDynamicMesh3::bEnableShapeChangeStamp, default to false, to disable ShapeChange tracking. Add ::SetShapeChangeStampEnabled() and ::HasShapeChangeStampEnabled() to configure.
- replace FDynamicMesh3::UpdateTimestamps() with UpdateChangeStamps()
- add bTrackChange param to FDynamicMesh3::SetVertex(), optionally updates ShapeChangeStamp (if enabled). Default true. Remove SetVertex_NoTimeStampUpdate(), update call sites.
- add FDynamicMesh3::GetChangeStamp(), returns combination of Shape and Topology stamps as uint64
- rename TTriangleMeshAdapter::GetTimestamp() to GetChangeStamp(), update usages
- remove TPointSetAdapter::Timestamp()   (was not used in code)
- update TMeshAABBTree3 to use GetChangeStamp(), update internal checks to call IsValid() instead
- update TFastWindingTree w/ similar changes
- update calls in UVEditor, may require further updates
#rb semion.piskarev
#rnx
#jira none
#preflight 6126904c72e9eb00011434fe

#ROBOMERGE-SOURCE: CL 17310271 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v861-17282326)

[CL 17315112 by ryan schmidt in ue5-release-engine-test branch]
2021-08-26 06:57:55 -04:00
michael balzer
b0035b9921 GeometryCore: Add unit test for loading all serialization versions of FDynamicMesh3
This CL adds a unit test and some related basic infrastructure for testing the backwards compatibility of our FDynamicMesh3 serialization. This is in anticipation of the incoming serialization changes.

#jira UETOOL-3821
#rb lonnie.li david.hill
#preflight 6125e930af9a8f0001691400, 6125e96a72e9eb0001f69cd3
#rnx

#ROBOMERGE-SOURCE: CL 17310112 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v861-17282326)

[CL 17315105 by michael balzer in ue5-release-engine-test branch]
2021-08-26 06:57:09 -04:00