Commit Graph

35 Commits

Author SHA1 Message Date
rinat abdrashitov
e289ca61d0 Initialize bone attributes from the transform hierarchy when performing Skin Binding Operation.
Store bone transform in the transform hiearchy as well.


#rb halfdan.ingvarsson
#preflight 6408c1998832f48a4daf0eac

[CL 24564498 by rinat abdrashitov in ue5-main branch]
2023-03-08 14:27:21 -05:00
jimmy andrews
0eb3c4be0a Expose simplification along cut/mirror plane as an option in the mirror and plane cut tools
#preflight 63e55764bb1d8ca8cf13f166
#rb trivial

[CL 24110681 by jimmy andrews in ue5-main branch]
2023-02-09 19:37:30 -05:00
ryan schmidt
227ac3d087 ModelingTools: Add OffsetMeshSelectionTool and RetriangulateGeometrySelectionCommand
#preflight 63cb1d78574ab9cae448312c
#rb none

[CL 23803436 by ryan schmidt in ue5-main branch]
2023-01-21 13:02:53 -05:00
ryan schmidt
0e4ddc8e1a ModelingTools: add new modeling-mode Tool/Operator for extruding Mesh Selections
Add UE::ToolTarget::SupportsIncrementalMeshChanges() and ::ApplyIncrementalMeshEditChange(), these allow a Tool to directly edit a DynamicMeshComponent in the level (and emit corresponding MeshChange) so that a Tool can emit multiple undoable edits on a DynamicMesh
Add new USingleTargetWithSelectionTool base tool class, this is a USingleSelectionTool that can receive a FGeometrySelection. USingleTargetWithSelectionToolBuilder configures this type of Tool as necessary.
Add new LinearExtrusionOp dynamic mesh operator, provides linear-extrusion API to FOffsetMeshRegion using new Operator design (mesh shared via FSharedConstDynamicMesh3, CalculateResultInPlace() function to simplify direct usage in geometry script/etc)
Add new ExtrudeMeshSelectionTool, subclass of USingleTargetWithSelectionTool, exposes new LinearExtrusionOp, uses above ToolTarget functions to directly edit DynamicMeshComponent where possible
Enable new Tool in Modeling Mode

Add a few new functions to UMeshOpPreviewWithBackgroundCompute to simplify configuring InProgress and Secondary materials
Small additions to USingleSelectionTool

#preflight 639a3e250a671525500d8a7e
#rb none

[CL 23520421 by ryan schmidt in ue5-main branch]
2022-12-14 17:43:16 -05:00
ryan schmidt
ec6a90a532 GeometryScript: add MeshCreateBoneWeights function. Fix bug in CreateNewSkeletalMeshAssetFromMesh function where Skeleton was never being passed on to creation function.
ModelingOperators:
Change FSkinBindingOp to use GetOrCreateSkinWeightsAttribute intsead of just directly accessing the SkinWeightAttribute (as it could be nullptr and this was not handled)
Fix various issues in CreateSkeletalMeshAsset(). Register MeshDescription attributes before trying to convert from DynamicMesh. Make sure there is always at least one Material being passed (otherwise ensures are hit in Material UVData check). Actually return created SkeletalMesh (!)


#rb none
#preflight 639382310d013d47ef35de03
[FYI] halfdan.ingvarsson

[CL 23499832 by ryan schmidt in ue5-main branch]
2022-12-13 18:16:43 -05:00
ryan schmidt
153ef493fb GeometryProcessing: OffsetMeshRegion improvements
Refactor core of FDynamicMeshEditor::DisconnectTriangles into an overload that takes precomputed triangle TSet and BoundaryLoops array, as some call sites already have computed this info
Refactor new-polygroup computation out of OffsetMeshRegion into UE::Geometry::ComputeNewGroupIDsAlongEdgeLoop util function in PolyEditingEdgeUtil.h/cpp
Add new function UE::Geometry::ComputeAverageUVScaleRatioAlongVertexPath in PolyEditingUVUtil.h/cpp

Introduce new type FQuadGridPatch, this is a book-keeping data structure for keeping track of "grid of quads" subregion of a triangle mesh, that provides easy access to vertex and quad/trainagle rows/columns
Add util functions ComputeNormalsForQuadPatch() and ComputeUVIslandForQuadPatch() in QuadGridPatchUtil.h

Add new version of OffsetMeshRegion geometric operation, inside FOffsetMeshRegion class. EVersion parameter determines which version of operation to run. Code for the "Legacy" version has not been modified, so back-compat is maintained. New implementation supports variable number of subdivisions along the Offset (via .NumSubdivisions), and computes normal/UV-islands "per group" in extrusion region, instead of per-quad. New version also splits bowties in extrude region before any additional processing, which simplifies some of the book-keeping/etc.

FExtrudeOp currently hardcoded to use use the FOffsetMeshRegion implementation

#rb none
#preflight 639762350a67152550ee9a18

[CL 23481550 by ryan schmidt in ue5-main branch]
2022-12-12 15:09:02 -05:00
halfdan ingvarsson
04d78f9b09 Move the skin binding op to a shared location in ModelingOps. Placed the implementation of the occupancy grid into its own helper header, as FOccupancyGrid3.
#preflight 6381cedffa053c489a910673
#rb ryan.schmidt
#rnx

[CL 23301139 by halfdan ingvarsson in ue5-main branch]
2022-11-28 20:24:14 -05:00
nathan mitchell
be8e0074e5 UVEditor: Merge and unify the RecomputeUVs codebases with the UVEditor and Modeling Mode.
#rb Jimmy.Andrews
#preflight 635c0d7cae6840072d339bd4

[CL 22831760 by nathan mitchell in ue5-main branch]
2022-10-28 13:26:45 -04:00
nathan mitchell
a95124d72e ModelingMode: Merge and unify the Layout codebases between the UV Editor and Modeling Mode.
#rb rinat.abdrashitov
#preflight 634ed9bfac7f102b31e5cb58

[CL 22704078 by nathan mitchell in ue5-main branch]
2022-10-21 19:03:38 -04:00
bryan sefcik
50d4fac9e0 Updated ../Engine/Plugins/... to inline gen.cpp files
Before:
3548 unity files
Total CPU Time: 47343.578125 s
Total time in Parallel executor: 494.60 seconds

After:
3445 unity files
Total CPU Time: 46044.671875 s
Total time in Parallel executor: 468.51 seconds

#jira
#preflight 63336159b20e73a098b7f24f

[CL 22218213 by bryan sefcik in ue5-main branch]
2022-09-28 01:06:15 -04:00
david hill
f95e20d510 Modeling Tools. Mesh Booleans and CutMeshesWithMeshes. When filling holes, generate normals and UVs for the new patches
#rb Jimmy.Andrews  Tyson.Brochu
#jira UE-156232
#preflight 6329e995a236a029ded66547

[CL 22103441 by david hill in ue5-main branch]
2022-09-20 17:33:48 -04:00
jimmy andrews
be1fbcd313 Fix VoxBlnd, VoxMrph, and VoxWrap not showing preview at LWC
#jira UE-157984
#rb david.hill
#preflight 6328b74a826e0c2fe9f7aa9c

[CL 22087345 by jimmy andrews in ue5-main branch]
2022-09-19 22:28:04 -04:00
Jimmy Andrews
3f0fdaddb4 When applying MeshTransforms' transform and transforminverse, generally pass bReverseOrientationIfNeeded=true
(+ for code that was passing false then manually applying the same logic, remove the extra reverse orientation logic)

#rb david.hill
#preflight 630d245fe352708d44f9e007

[CL 21706500 by Jimmy Andrews in ue5-main branch]
2022-08-30 14:40:56 -04:00
Ryan Schmidt
9943ce59ca ModelingTools: add support for specifying polygroup layer in EditNormalsTool
#rb none
#preflight 630d870b98103d4521980289

[CL 21704413 by Ryan Schmidt in ue5-main branch]
2022-08-30 13:02:59 -04:00
Ryan Schmidt
050edd4706 Geometry: Expose Remesh function in Geometry Script, and add basic convergence check to queue remesher
- add FQueueRemesher::MinActiveEdgeFraction. If fraction of modified/total edges in remesh pass is below this parameter (default 1%), consider result converged.
- Expose as option in FRemeshMeshOp, and add sane defaults for all parameters of Op
- move CalculateTargetEdgeLength function from RemeshMeshTool to static function in FRemeshMeshOp, update Tool
- add Geometry Script function ApplyUniformRemesh
#rb jimmy.andrews
#preflight 62a0f1923f1e313c6ad23c21

[CL 20562425 by Ryan Schmidt in ue5-main branch]
2022-06-08 15:29:16 -04:00
tyson brochu
f4558a93ca RemeshTool: if Preserve Sharp Edges in unchecked, allow seam edges to be collapsed by the remesher
#jira UE-149616
#rb david.hill
#preflight 6297be179907cbadba99faf3

[CL 20457326 by tyson brochu in ue5-main branch]
2022-06-01 15:44:30 -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
tyson brochu
087f3b0d0f Remesh Tool: initial implementation of (optional) boundary constraint projection:
- Constrained edges along a boundary are allowed to collapse, and vertices are allowed to move, but they are projected back to the original boundary curve geometry
- Additionally, vertices at boundary "corners" (defined using an angle threshold criterion) are constrained to not move or be deleted


#jira UE-149616
#rb rinat.abdrashitov
#preflight
#preflight 6262dc97e87284a93cd6bd44

[CL 19867177 by tyson brochu in ue5-main branch]
2022-04-22 12:56:47 -04:00
semion piskarev
86b2b0b7d0 MeshModelingTools: Minor rephrasing in CubeGrid UV flipping logic to appease the static analyzer.
#rb Jimmy.Andrews
#jira UE-149826
#preflight 6261bc9ca21b75437123164c

[CL 19855728 by semion piskarev in ue5-main branch]
2022-04-21 16:49:13 -04:00
semion piskarev
61527278b2 MeshModelingTools: Make the UV's created by CubeGridTool not be flipped when cutting things away.
#rb Nathan.Mitchell
#jira none
#preflight 6255e6033e1d412540e1384f

[CL 19833633 by semion piskarev in ue5-main branch]
2022-04-20 13:32:57 -04:00
semion piskarev
f4faae3551 MeshModelingTools: Change how HoleFillOp assigns UV's to single trianges to avoid an unnecessary connected component search for the whole mesh. Also make it work in the presence of unset UV's though this currently can't happen inside the HoleFill Tool because it passes everything through a MeshDescription conversion.
#rb Jimmy.Andrews, Tyson.Brochu
#jira UE-147181
#preflight 62602a4add47b4ad2173633f

[CL 19831940 by semion piskarev in ue5-main branch]
2022-04-20 12:00:18 -04:00
semion piskarev
48099e42d8 MeshModelingTools: Fix minor static analysis complaint in CubeGridTood.
#rb none
#rnx
#jira UE-144617
#preflight 624c7f30a64871f1a10f8d2b

[CL 19628145 by semion piskarev in ue5-main branch]
2022-04-05 13:48:12 -04:00
rinat abdrashitov
744e9ee8c8 Added the Spectral conformal parameterization option for unwrapping UVs.
Refactored existing LSCM/DNCP UV unwrapping since a lot of code is shared with the Spectral method.

#rb david.hill
#rb nathan.mitchell
#jira None
#preflight 62433f4de434babd8ad4ca34

[CL 19547023 by rinat abdrashitov in ue5-main branch]
2022-03-29 15:03:12 -04:00
tyson brochu
c3e5842382 Add a "prevent tiny triangles" option to Remesher. Currently the area threshold matches the threshold used when creating a cloth simulation mesh.
#rb jimmy.andrews
#preflight 623211d35932902f93551e4d

[CL 19407366 by tyson brochu in ue5-main branch]
2022-03-16 12:41:13 -04:00
semion piskarev
8f0169fb91 MeshModelingTools: CubeGrid improvements.
- Fix bugs with how the tool deals with materials.
- Make UV's always stay aligned in the same orientation.
- Make UV's be contiguous when performing multiple steps with the same selection.
- Make sides maintain same groups with repeated steps of the same selection.
- Add support for scaling UV's.
- Add support for focus hotkey.
Also change how frame is chosen when subtracting to avoid some weird flipping logic.

#rb Matija.Kecman, Lonnie.Li
#jira none
#preflight 622b58e032749f363c82087b

[CL 19353955 by semion piskarev in ue5-main branch]
2022-03-11 09:28:29 -05:00