Commit Graph

33 Commits

Author SHA1 Message Date
David Hill
c7fdcbcbe8 Geometry: Intrinsic Triangulation and Geodesics. Fixed bugs related to the special case when an intrinsic triangle has only two distinct verts (as happens when an intrinsic triangle wraps the tip of a cone). Also added mesh reset methods and allowing the intrinsic mesh to optionally own a copy of the surface mesh it uses.
#preflight 6287de806c7692ac8cccee95
#rb Tyson.Brochu

[CL 20348622 by David Hill in ue5-main branch]
2022-05-24 11:10:33 -04:00
David Hill
92e5b04fa9 Remove extraneous debug code.
#preflight 62866a9615019f647746ed23
#jira none
#rnx

[CL 20284806 by David Hill in ue5-main branch]
2022-05-19 14:55:44 -04:00
David Hill
294f8cca41 Geometry Processing: Implement intrinsic mesh triangle and edge split using normal coordinates
#preflight 62851449614041edb7874304
#rb jimmy.andrews

[CL 20280431 by David Hill in ue5-main branch]
2022-05-19 10:43:03 -04:00
semion piskarev
51b6474352 MeshModelingTools: Make offset and inset work in pathological bowtie-related cases. Fix DisconnectTriangles in cases of bowties.
#rb Jimmy.Andrews, Rinat.Abdrashitov
#jira UE-150128, UE-150574
#preflight 6283abd4730e8423d125ff9a

[CL 20242223 by semion piskarev in ue5-main branch]
2022-05-17 10:13:11 -04:00
Jimmy Andrews
4993c96dfd Fix fracture messing up normals for some meshes by making the mesh boolean's simplifier preserve vertex normals
#jira UE-151297
#rb rinat.abdrashitov
#preflight 627d25564a05ef0394cc0592

[CL 20165579 by Jimmy Andrews in ue5-main branch]
2022-05-12 12:09:00 -04:00
Jimmy Andrews
8566e1a762 add convex decomposition options to Msh2Coll tool and geometryscript collision functions
#rb rinat.abdrashitov
#preflight 624751ec292f228e09196984

[CL 19594527 by Jimmy Andrews in ue5-main branch]
2022-04-01 16:04:37 -04:00
rinat abdrashitov
6149eb4a59 Added a flag to optionally recompute normal overlay or per-vertex normals after displacement in PNTriangles.
Disabled quadratically varying normal computation for 5.0.

#rb david.hill
#rb semion.piskarev
#rnx
#jira none
#preflight 61f899cb114ec25fe0c8e0f2

#ROBOMERGE-AUTHOR: rinat.abdrashitov
#ROBOMERGE-SOURCE: CL 18811717 in //UE5/Release-5.0/... via CL 18811737 via CL 18822719
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v908-18788545)

[CL 18823656 by rinat abdrashitov in ue5-main branch]
2022-02-02 05:56:24 -05:00
ryan schmidt
6ad26b69f0 rename UE::Geometry::TTransform3 to TTransformSRT3, update references
#rb none
#rnx
#jira UE-139757
#preflight 61f572d9e52a8a4a910990f1

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18784197 in //UE5/Release-5.0/... via CL 18784203 via CL 18784222
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18784226 by ryan schmidt in ue5-main branch]
2022-01-29 14:37:53 -05:00
rinat abdrashitov
b2354c8152 Fixed a misspelling of the word tessellation in the code and filenames (previously tesselation - missing an "l"). Only affected the files that import PNTriangles.h and UnifromTesselation.h (renamed to UnifromTessellation.h).
#rb jimmy.andrews
#rnx
#jira none
#preflight 61f41d586b5aea38e5bc87f7

#ROBOMERGE-AUTHOR: rinat.abdrashitov
#ROBOMERGE-SOURCE: CL 18775574 in //UE5/Release-5.0/... via CL 18775583 via CL 18775838
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18775879 by rinat abdrashitov in ue5-main branch]
2022-01-28 14:07:23 -05:00
rinat abdrashitov
90509f1b0d Fixed a compilation error in CL18443426 caused by missing files.
#rnx
#jira none

#ROBOMERGE-AUTHOR: rinat.abdrashitov
#ROBOMERGE-SOURCE: CL 18443776 in //UE5/Release-5.0/... via CL 18445115
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)

[CL 18445279 by rinat abdrashitov in ue5-release-engine-test branch]
2021-12-13 13:36:23 -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
ryan schmidt
0e961a1e23 ModelingTools: add Edge Bevel operation in PolyEdit Tool. New UPolyEditBevelEdgeActivity, and operations to initialize it in PolyEdit. This bevel operation currently uses an explicit bevel-distance rather than a live viewport interaction, and as a result required adding a separate 'apply' button inside the PolyEditTool panel (via new UEditMeshPolygonsToolAcceptCancelAction). The UX here is terrible but it's not clear we can do better in 5.0 timeframe.
GeometryProcessing: add support for beveling the border ring(s) of a triangle or polygroup-face selection. Improve polygroup assignment around bevel loops, previously the entire loop received a single polygroup which is not what the user expects in polygroup-modeling. Now a new polygroup is assigned for each unique group-edge-pair. Terminator vertices now also generate a new polygroup if there are 2 or more adjacent groups, previously behavior (assigning to arbitrary nbr) was not useful during polygroup-edting.

#rb rinat.abdrashitov
#rnx
#jira none
#preflight 6193ddccb32bbfdc50d9ed07

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18208908 in //UE5/Release-5.0/... via CL 18209386
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 18209422 by ryan schmidt in ue5-release-engine-test branch]
2021-11-16 13:24:21 -05:00
david hill
0e72ee8961 Dynamic Mesh, Intrinsic Mesh - add a more efficient normal-coordinate based method for tracing a small number of intrinsic mesh edges.
#preflight 618c30c2857f725e2961a5af
#rb jimmy.andrews

#ROBOMERGE-AUTHOR: david.hill
#ROBOMERGE-SOURCE: CL 18152341 in //UE5/Release-5.0/... via CL 18152405
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v889-18060218)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 18152455 by david hill in ue5-release-engine-test branch]
2021-11-11 11:47:23 -05:00
david hill
9e0ccd3133 Geometry tools: Fix GeodesicPath compile error
#rb none

#ROBOMERGE-AUTHOR: david.hill
#ROBOMERGE-SOURCE: CL 18136061 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v889-18060218)

[CL 18136142 by david hill in ue5-release-engine-test branch]
2021-11-10 15:04:25 -05:00
david hill
6e12be9318 Dynamic Mesh, Intrinsic Mesh - more robust calculation of intrinsic edges.
-  add integer-based normal coordinates for correspondence with the surface mesh and unify code that helps track the relationship between meshes.
-  rename FIntrinsicEdgeFlipMesh  FSimpleIntrinsicEdgeFlipMesh.
-  new FIntrinsicEdgeFlipMesh that uses the interger-based normal coordinates to track location of intrinsic edges relative to the surface mesh.

#preflight 618aa6de235a78d30e416b21
#rb jimmy.andrews

#ROBOMERGE-AUTHOR: david.hill
#ROBOMERGE-SOURCE: CL 18135001 in //UE5/Release-5.0/... via CL 18135020
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v889-18060218)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 18135032 by david hill in ue5-release-engine-test branch]
2021-11-10 14:22:10 -05:00
ryan schmidt
7bd74ffee4 GeometryProcessing: add basic UV calculation and materialID support to MeshBevel. Add PolyEditingUVUtil file for UV computation utility functions in Poly-editing. Currently only ComputeArbitraryTrianglePatchUVs() function which uses expmap to compute UVs and (approximately) scales UVs to match UV scale on surrounding border triangles.
GeometryScript: add ApplyMeshPolygroupBevel operation
#rb none
#rnx
#jira none
#preflight 618434449249220001a944df

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18065452 in //UE5/Release-5.0/... via CL 18065478
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v889-18060218)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 18065511 by ryan schmidt in ue5-release-engine-test branch]
2021-11-04 18:24:07 -04:00
ryan schmidt
8c5b55b152 GeometryProcessing: Refactor edge-loop inset calculation code from InsetMeshRegion into new utility functions in PolyEditingEdgeUtil.h. Use in FMeshBevel::DisplaceVertices() to improve edge insetting. Also add FMeshBevel::FixUpUnlinkedBevelEdges(), to repair vertex and edge ID lsits in unlinked open-span edges after unlinking vertices.
#rnx
#jira none
#preflight 61821056dd10170001f4d541

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

[CL 18041673 by ryan schmidt in ue5-release-engine-test branch]
2021-11-03 17:40:43 -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
jimmy andrews
6df1e3bcc4 clamp offsets/extrusions in polyedit in the tri-normal-adjust mode, that could otherwise offset infinitely at sharp corners
#jira UE-132170
#rb lonnie.li

#ROBOMERGE-AUTHOR: jimmy.andrews
#ROBOMERGE-SOURCE: CL 17893788 in //UE5/Release-5.0/... via CL 17893807
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v883-17842818)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17893813 by jimmy andrews in ue5-release-engine-test branch]
2021-10-21 22:27:29 -04:00
david hill
2e27653ee8 Dynamic Mesh, Operations, GeodesicPath - allow geodesic path to be exported as array of surface points.
#preflight 6168c0e367b5f00001f30300
#rb jimmy.andrews


#ROBOMERGE-AUTHOR: david.hill
#ROBOMERGE-SOURCE: CL 17864587 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v883-17842818)

[CL 17864605 by david hill in ue5-release-engine-test branch]
2021-10-19 15:20:12 -04:00
david hill
c57f929da7 Dynamic Mesh, Operations: Intrinsic Mesh - export intrinsic mesh edges as array of surface points.
#rb jimmy.andrews
#preflight 615f199a7c973700010520c7

#ROBOMERGE-AUTHOR: david.hill
#ROBOMERGE-SOURCE: CL 17817297 in //UE5/Release-5.0/... via CL 17817318
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v881-17767770)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17817329 by david hill in ue5-release-engine-test branch]
2021-10-14 12:02:29 -04:00
david hill
c7433c736b Dynamic Mesh, Operations, GeodesicPath - remove unwanted include.
#rnx
#rb trivial
#preflight 615e3a8cf3f4d900016427a8

#ROBOMERGE-AUTHOR: david.hill
#ROBOMERGE-SOURCE: CL 17749277 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v879-17706426)

[CL 17749326 by david hill in ue5-release-engine-test branch]
2021-10-07 10:23:27 -04:00
david hill
58c5655c3a Dynamic Mesh Plugin: Operations - Adding first pass at code that uses edge flips of an intrinsic mesh to reduce the length of an input surface curve (defined on a FDynamicMesh)
#rb jimmy.andrews
#preflight 61573139a680bb0001ce7f51

#ROBOMERGE-AUTHOR: david.hill
#ROBOMERGE-SOURCE: CL 17693963 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v875-17642767)

[CL 17693979 by david hill in ue5-release-engine-test branch]
2021-10-01 13:18:53 -04:00
david hill
8ec4356eb0 Moving IntrinsicTriangulationMesh and related MeshGeodesicSurface tracer out of Geometry Core, and into the DynamicMesh plugin
#rb ryan.schmidt, tyson.brochu
#preflight 6154c3f2549cbf00019ac526


#ROBOMERGE-AUTHOR: david.hill
#ROBOMERGE-SOURCE: CL 17678078 in //UE5/Release-5.0/... via CL 17678080
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v875-17642767)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17678087 by david hill in ue5-release-engine-test branch]
2021-09-30 10:52:07 -04:00
jimmy andrews
0f0b673c04 fix incorrect comment on boolean tool compute method
#rb trivial
#rnx

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

[CL 17557874 by jimmy andrews in ue5-release-engine-test branch]
2021-09-17 16:25:27 -04:00