Commit Graph

21 Commits

Author SHA1 Message Date
Ryan Schmidt
9495a8a112 GeometryProcessing: remove FTransform3f/d and FPlane3f/d from ExplicitUseGeometryMathTypes.h and clean up fallout
#rb none
#rnx
#jira none

[CL 15739090 by Ryan Schmidt in ue5-main branch]
2021-03-18 12:46:27 -04:00
Ryan Schmidt
ffe3b401cd GeometryProcessing: move all public types in GeometryProcessing plugin into UE::Geometry:: namespace, as well as some code in MeshModelingToolset. Fix fallout in Water, Paint Mode, ChaosEditor, DataPrep, Text3D, Unit Tests, internal projects.
#rb jimmy.andrews, semion.piskarev
#jira none

[CL 15661651 by Ryan Schmidt in ue5-main branch]
2021-03-09 19:33:56 -04:00
Jimmy Andrews
c955207177 try removing Win64 platform whitelist from modeling toolset modules that shouldn't need it
+ fix minor issues uncovered by doing so

#rb ryan.schmidt
#rnx

[CL 15627114 by Jimmy Andrews in ue5-main branch]
2021-03-05 14:05:05 -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
Ryan Schmidt
b9d10187f2 ModelingTools: improve performance in DynamicMeshSculptTool by making some of the sub-computations asynchronous. Add button inside the Tool to discard attributes, rather than forcing user to round-trip through another Tool.
#rb none
#rnx
#jira none

[CL 15142732 by Ryan Schmidt in ue5-main branch]
2021-01-20 00:15:28 -04:00
jimmy andrews
ff37523e51 fix crash on edit normals if mesh has duplicate triangles
#jira UE-91276
#rb none
#rnx

#ROBOMERGE-SOURCE: CL 12480856 in //UE4/Release-4.25/... via CL 12480860 via CL 12480865
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v673-12478461)

[CL 12487324 by jimmy andrews in Main branch]
2020-03-30 12:04:36 -04:00
ryan schmidt
a5aa3b56a2 Add support for tracking changes to overlay normals to FMeshVertexChange/Builder. Add support for applying this to mesh in USimpleDynamicMeshComponent::ApplyChange and Octree component. FGroupTopologyDeformer now calculates list of modified overlay normals. EditMeshPolygonsTool and DeformMeshPolygonsTool now relcalculate normals on edit and propagate to change. Moved deformation calculation in EditMeshPolygonsTool from mouse handler to tick, significantly improves responsiveness.
#rb none
#rnx
#jira UE-90205

#ROBOMERGE-SOURCE: CL 11968217 in //UE4/Release-4.25/... via CL 11968232
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v656-11643781)

[CL 11968271 by ryan schmidt in Main branch]
2020-03-05 18:07:34 -05:00
ryan schmidt
4884a0e9ec ModelingTools: remove copypasta that resulted in log spam
#rb none
#rnx
#jira none

#ROBOMERGE-SOURCE: CL 11887940 in //UE4/Release-4.25/... via CL 11888007
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v656-11643781)

[CL 11888081 by ryan schmidt in Main branch]
2020-03-03 16:55:37 -05:00
JeanMichel Dignard
70d074639f Merging //UE4/Dev-Main @ 10886849 to Dev-Tools-Staging (//UE4/Dev-Tools-Staging)
#rb none
#rnx

[CL 10906274 by JeanMichel Dignard in Dev-Tools-Staging branch]
2020-01-08 13:26:18 -05:00
Marc Audy
360d078ca3 Second batch of remaining Engine copyright updates.
#rnx
#rb none

[CL 10871248 by Marc Audy in Main branch]
2019-12-27 09:26:59 -05:00
Chris Gagnon
346a4b05ea Copy up from Dev-Editor @10681378
#rb none

[CL 10837446 by Chris Gagnon in Dev-Tools-Staging branch]
2019-12-19 18:07:47 -05:00
Ryan Schmidt
bb43e6f69e ModelingTools: add Create Group option to Selection Tool. Add ability to show PolyGroup Colors in Selection Tool. Custom TriangleColor TFunction of DMesh-backed Components now takes Mesh as parameter (to be able to look up group w/o complex captures)
#rb none
#rnx

[CL 10091508 by Ryan Schmidt in Dev-Editor branch]
2019-11-09 21:49:15 -05:00
jimmy andrews
38472532a8 handle cases where topology had to be modified (e.g. due to nonmanifold input) so we do not crash
#jira UE-83393
#rb ryan.schmidt
#rnx

#ROBOMERGE-SOURCE: CL 10088110 in //UE4/Release-4.24/...
#ROBOMERGE-BOT: RELEASE (Release-4.24 -> Main) (v574-10069753)

[CL 10088113 by jimmy andrews in Main branch]
2019-11-08 16:46:36 -05:00
ryan schmidt
a59aa368b6 Merging CL# 9552130 from UE4/Dev-Editor
ModelingTools: handle scaling (uniform and non-uniform) in Sculpt tool. This is done by transforming mesh to world space for sculpting, and transforming back on Bake. Not an ideal solution, but usable numeric range in the World is bounded by float precision and we are working in doubles.

Added functions to TTransform3 to clamp scale to valid range and transform Normals.
Added MeshTransforms, has functions to transform and inverse-transform a mesh.
Added OctreeDynamicMeshComponent::ApplyTransform() to apply these functions to internal mesh.

#jira UE-80548
#rb jimmy.andrews
#rnx

#ROBOMERGE-SOURCE: CL 9692427 in //UE4/Release-4.24/...
#ROBOMERGE-BOT: RELEASE (Release-4.24 -> Main) (v538-9681622)

[CL 9692436 by ryan schmidt in Main branch]
2019-10-18 13:12:29 -04:00
Ryan Schmidt
f75fd67a7e ModelingTools: handle scaling (uniform and non-uniform) in Sculpt tool. This is done by transforming mesh to world space for sculpting, and transforming back on Bake. Not an ideal solution, but usable numeric range in the World is bounded by float precision and we are working in doubles.
Added functions to TTransform3 to clamp scale to valid range and transform Normals.
Added MeshTransforms, has functions to transform and inverse-transform a mesh.
Added OctreeDynamicMeshComponent::ApplyTransform() to apply these functions to internal mesh.

#jira UE-80548
#rb jimmy.andrews
#rnx

[CL 9552130 by Ryan Schmidt in Dev-Editor branch]
2019-10-11 17:31:21 -04:00
Chris Gagnon
8ab0638182 Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main) for 4.24
#rb none

[CL 9325047 by Chris Gagnon in Main branch]
2019-10-01 20:41:42 -04:00
Richard TalbotWatkin
1cd94f81c3 Added StaticMeshDescription module for defining attributes and operations required in editor and at runtime for MeshDescriptions for static meshes.
Provided a path for building MeshDescriptions for static meshes at runtime, and supporting API.
Clarified use of attributes for static meshes; now some attributes may be considered optional.
Added FStaticMeshAttributes, used for fetching and registering all the attributes required by a static mesh.
Added Blueprint interface for building meshes.
Deprecated a number of existing APIs:
 - FMeshDescription methods which referred explicitly to static mesh specific attributes
 - StaticMesh attribute registration has been moved to FStaticMeshAttributes
#rb none

[CL 9123037 by Richard TalbotWatkin in Dev-Editor branch]
2019-09-26 05:03:53 -04:00
Ryan Schmidt
7cd31c4586 ModelingTools: move FChange implementations to Changes subdirectory
#rb none
#rnx

[CL 9056842 by Ryan Schmidt in Dev-Editor branch]
2019-09-24 17:16:57 -04:00
Ryan Schmidt
48bc31a501 ModelingTools: disable log spam in OctreeDynamicMeshComponent
#rb none
#rnx

[CL 9042556 by Ryan Schmidt in Dev-Editor branch]
2019-09-24 13:10:45 -04:00
Jimmy Andrews
c6919053cc polyedit settings to change polygon boundaries; initial version, needs threading fix + revisit of undo/redo behavior
#rb none
#rnx

[CL 8686366 by Jimmy Andrews in Dev-Editor branch]
2019-09-16 03:53:07 -04:00
michael daum
41921c544b Mesh Modeling Tools moved from NotForLicensees to Experimental
#rb ryan.schmidt

[CL 8657805 by michael daum in Dev-Editor branch]
2019-09-12 13:55:17 -04:00