Commit Graph

83 Commits

Author SHA1 Message Date
Jimmy Andrews
e3a0af3eb9 fix ensure() being hit in voxwrap when run on an empty mesh
#jira UE-106804
#rnx
#rb trivial

[CL 15338440 by Jimmy Andrews in ue5-main branch]
2021-02-05 11:54:09 -04:00
semion piskarev
074de2d0c2 MeshModelingTools: SpaceDeform Tool improvements. Fixed modifier intensity and active range errors in bend operation, added normal normalization in flare op, made parameters be operation-specific, added nonuniform flaring and "smooth ends" option to flare op, added a "shift to center" button, added transparent original mesh view, added alignment of gizmo and intervals to world, added "lock bottom" option to twist and bend operations, added line visualization to bend operation, added option for ctrl click to not use the normal.
#rb David.Hill
#rnx
#jira none

[CL 15242629 by semion piskarev in ue5-main branch]
2021-01-28 13:06:33 -04:00
Ryan Schmidt
c48788b722 GeometryProcessing:
Add insights profiling tags to RemeshMeshOp and FRemesher. Small optimizations to FRemesher::ProcessEdge(), which has surprising overhead for no-ops (ie edge is not modified).
Add FUniqueIndexSet, alternative to a TSet for constructing list of unique indices (eg when finding set of one-ring tris of a list of vertices). Generally more efficient, particularly for large sets.
Improve FSubRegionRemesher. Make VertexROI private, provide accessors and update usage sites. Optimize InitializeFromVertexROI(), which is an expensive part of dynamic mesh sculpting. Make FullSmoothPass_Buffer() compute in parallel.

ModelingTools:
Major refactor of DynamicMeshSculptTool to improve performance (2-4x improvement on large brush sizes on 1m triangle mesh). A single FSubRegionRemesher is now created and maintained for entire brush stroke, rather than recreating every stamp. This avoids the high cost of initialzing full-mesh constraint set, and allows re-use of various allocated memory buffers. Reorganize major sub-steps computed in a single brush-stamp tick to allow Async computation where possible. Replace some ROI TSets with FUniqueIndexSet. Instrument for Insights, remove old cycle counting.

#rb none
#rnx
#jira none

[CL 15215321 by Ryan Schmidt in ue5-main branch]
2021-01-27 01:53:01 -04:00
Jimmy Andrews
4ee1441001 Add a n-ary subtract option to the voxel blend tool
#rb ryan.schmidt

[CL 15161964 by Jimmy Andrews in ue5-main branch]
2021-01-21 23:50:44 -04:00
Jimmy Andrews
67deaeddc0 Clean up of VoxWrap, VoxBlend, and VoxMorphology
- Rename "offset" to the more accurate "thicken shells"
 - More consistent clamp min thickening based on voxel resolution
 - Only apply thickening to meshes that are actually shells (i.e. have open boundaries)
 - Improve related comments and variable names

#rb david.hill

[CL 15118588 by Jimmy Andrews in ue5-main branch]
2021-01-15 17:33:35 -04:00
Jimmy Andrews
4f4e9ed156 #jira UE-104384
fix crash in voxel blend and voxel morphology tools when offset is too small and deletes input mesh

#rb tyson.brochu

#ushell-cherrypick of 15057034 by Jimmy.Andrews

[CL 15104306 by Jimmy Andrews in ue5-main branch]
2021-01-14 22:58:49 -04:00
Jimmy Andrews
2ec3ef512e For Jacketing tool, add option to set a new polygroup ID for occluded triangles, instead of deleting the triangles
#rb ryan.schmidt, semion.piskarev

[CL 15071441 by Jimmy Andrews in ue5-main branch]
2021-01-13 16:19:10 -04:00
Jimmy Andrews
a61dc4a68e Every Progress->Cancelled() gets a nullptr check
#rb semion.piskarev
#rnx

[CL 15068053 by Jimmy Andrews in ue5-main branch]
2021-01-13 12:32:53 -04:00
semion piskarev
81eca204ef MeshModelingTools: Fixing trivial self-assignment that accidentally got commited in 15066707.
#rb none
#rnx
#jira none

[CL 15066779 by semion piskarev in ue5-main branch]
2021-01-13 10:41:11 -04:00
semion piskarev
1adda5dfa5 MeshModelingTools: Modifications to SpaceDeformerTool to make it more responsive. Moved mesh copy over to background thread, parallelized operations, and (most importantly) used the fast render proxy update path.
#rb Jimmy.Andrews
#rnx
#jira none

[CL 15066707 by semion piskarev in ue5-main branch]
2021-01-13 10:23:16 -04:00
Jimmy Andrews
a0f1437af0 add option to shrink (erode) the set of triangles removed by the jacketing tool
#rb tyson.brochu

[CL 14984287 by Jimmy Andrews in ue5-main branch]
2021-01-04 16:55:56 -04:00
tyson brochu
27e162b6f1 NormalFlowRemesher: do extra iterations of normal flow without remeshing. Don't terminate remeshing iterations if mesh quality is good but normal flow is still moving vertices.
#jira none
#rnx
#rb jimmy.andrews

[CL 14894740 by tyson brochu in ue5-main branch]
2020-12-09 19:29:10 -04:00
Ryan Schmidt
ad9f0ea712 GeometryProcessing: add DynamicMeshAttributeSet::SplitAllBowties() function, splits bowties in NormalOverlay and UVOverlays
ModelingTools: Expose Simplify To Minimal Planar simplification mode in Simplify Tool. Add edge filter to this simplification mode in TMeshSimplification. Add support for returning all edges along intersection curves in FMeshBoolean and FMeshSelfUnion. Add option BooleanMeshesOp and SelfUnionMeshesOp to apply minimal-planar simplification along these cut/intersection edges. Expose as toggles in CSGMeshesTool and SelfUnionMeshesTool
#rb jimmy.andrews
#rnx
#jira none

[CL 14890297 by Ryan Schmidt in ue5-main branch]
2020-12-09 14:18:38 -04:00
Jimmy Andrews
bc4d83ce70 split trim options off the boolean tool into a trim-specific tool w/ trim-specific options
+ add trim inside vs outside option

#rb david.hill, semion.piskarev

[CL 14837879 by Jimmy Andrews in ue5-main branch]
2020-12-02 15:36:50 -04:00
Jimmy Andrews
d7255d8ac3 add min area and min tri count filters for jacketing tool, to help remove isolated floating tris from output
#rb tyson.brochu

[CL 14712401 by Jimmy Andrews in ue5-main branch]
2020-11-10 17:04:15 -04:00
Jimmy Andrews
038fc1b8af change the way generic attributes are handled so that we can preserve generic attributes across mesheditor AppendMesh operations
+ a couple minor helpful additions to DynamicMeshEditor: add a cleanup function for removing unreferenced vertices, and add a parameter for StitchSparselyCorrespondedVertexLoops to optionally reverse its triangle orientations

#rb ryan.schmidt tyson.brochu
#rnx

[CL 14626245 by Jimmy Andrews in ue5-main branch]
2020-11-01 22:12:11 -04:00
Marc Audy
68150e0be7 Merge UE5/Release-Engine-Staging to UE5/Main @ 14611496
This represents UE4/Main @ 14594913

[CL 14612291 by Marc Audy in ue5-main branch]
2020-10-29 13:38:15 -04:00
tyson brochu
92487e29a5 Parallelize computing mesh deformation in FFDLattice.
#jira UETOOL-2367
#rnx
#rb semion.piskarev jimmy.andrews

[CL 14480752 by tyson brochu in ue5-main branch]
2020-10-13 12:07:06 -04:00
tyson brochu
e59c05689f Replace a boolean parameter with an enum class. I think it's clearer to pass in "Linear" than "false".
Also some code formatting fixes.

#jira UETOOL-2222
#rb michael.daum jimmy.andrews
#rnx

[CL 14398178 by tyson brochu in ue5-main branch]
2020-09-25 13:58:13 -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
tyson brochu
69458919ab Simple free-form deformation (FFD) lattice tool. Create a hexahedral grid (lattice) around the mesh, allow the user to move the lattice, and deform the mesh accordingly. Cubic and linear interpolation from lattice control points to mesh vertices are both supported, as is user-defined lattice resolution. Control points can be selected individually or with a rectangle selection.
#jira UETOOL-2222 UETOOL-2355
#rb semion.piskarev

[CL 14311916 by tyson brochu in ue5-main branch]
2020-09-14 15:35:20 -04:00
Marc Audy
7379fa99c5 Merging //UE5/Release-Engine-Staging to Main (//UE5/Main) @ 14229157
[CL 14233282 by Marc Audy in ue5-main branch]
2020-09-01 14:07:48 -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
Marc Audy
11f5b21210 Merging //UE5/Release-Engine-Staging @ 13752110 to Main (//UE5/Main)
#rnx

[CL 13753156 by Marc Audy in ue5-main branch]
2020-06-23 18:40:00 -04:00
ryan schmidt
e7c0c460cc GeometryProcessing: further refactoring of mesh solvers. Moved different parts of LaplacianMeshSmoother file into ConstarinedMeshSmoothers.h, ConstrainedMeshDeformers.h, ConstrainedMeshDeformationSolver.h, MeshDiffusionIntegrator, and MeshDiffusionSmoothing.h. DeformMeshPolygonsTool now uses IConstrainedMeshSolver interface, and no longer includes Private headers from GeometryProcessing.
Also made a small change to LaplacianOperators.cpp:ConstructScaledCotangentLaplacian(), which had checkSlow() that was failing on zero-elements Area matrix at boundary vertices. Code in this function does not appear to correctly handle boundary vertices (however things work out in the end because matrices are squared later?)

#rb none
#rnx

#ROBOMERGE-SOURCE: CL 13145964 via CL 13145965 via CL 13145966
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v688-13145358)

[CL 13145967 by ryan schmidt in Main branch]
2020-05-03 16:34:34 -04:00