Commit Graph

9 Commits

Author SHA1 Message Date
Ryan Schmidt
7393d0f0f5 ModelingTools: Fix various issues related to Tangents. FDynamicMeshEditor was using hardcoded 0 index instead of loop-variable NormalLayerIndex in several places. FDynamicMeshTangents did not handle invalid overlay triangles. UEditorModelingObjectsCreationAPI::CreateDynamicMeshActor() was not enabling Tangents on new DynamicMeshComponents. UDynamicMeshComponentToolTarget was not transferring tangents between FDynamicMesh3 and FMeshDescription when converting.
#rb none
#rnx
#jira none
preflight 60d25e9678c3b000012438cc

[CL 16751529 by Ryan Schmidt in ue5-main branch]
2021-06-22 19:34:47 -04:00
Ryan Schmidt
ac3dde0f63 GeometryProcessing: Move FDynamicMesh3 serialization to a separate file and add local versioning so we can iterate without having to bump stream version
#rb lonnie.li
#rnx
#jira none
#preflight 60d0f16671002f000192e9c9

[CL 16734659 by Ryan Schmidt in ue5-main branch]
2021-06-21 17:44:44 -04:00
michael balzer
fd81a24cf6 GeometryProcessing: Reset existing UVs before Unwrap
#jira UE-116883
#rb ryan.schimdt
#rnx

[CL 16710839 by michael balzer in ue5-main branch]
2021-06-17 16:27:03 -04:00
Ryan Schmidt
32cbbe9b99 GeometryProcessing: add FDynamicMeshTangents helper class to simplify access to FDynamicMesh3 tangent attribute overlays. Add functions to FMeshTangents and TDynamicMeshVectorOverlay to simplify getting a single triangle-vertex tangent/bitangent. Fix paste-o in FDynamicMeshAttributeSet::SetNumNormalLayers()
#rb none
#rnx
#jira none
#preflight 60c3b0bf8d00b80001b85366

[CL 16647280 by Ryan Schmidt in ue5-main branch]
2021-06-11 17:11:27 -04:00
semion piskarev
cf40dc417f MeshModelingTools: Tweaked tool target requirements object storage default and added a convenience function to add requirements. Also added several comments in places.
#rb Lonnie.Li, Tyson.Brochu
#rnx
#jira none

[CL 16606399 by semion piskarev in ue5-main branch]
2021-06-09 11:50:54 -04:00
tyson brochu
9d2b0fdde3 Move ConvexHull2, ConvexHull3, and exact predicates into GeometryCore/CompGeom. Change them all to use the UE::Geometry namespace. Copy associated TPS files as needed.
#ushell-cherrypick of 16542896 by swarm
#rb ryan.schmidt

[CL 16575323 by tyson brochu in ue5-main branch]
2021-06-07 15:02:12 -04:00
Ryan Schmidt
8fd2394228 GeometryProcessing:
- Add MakeBoundsFromIndices() utility functions to TAxisAlignedBox3 to simplify computing bounding-box of point sets
- FDynamicMesh3::GetVertexFrame() can now take an externally-provided normal, and so now can be used without computing VertexNormals attribute
- Add FModuloIteration to IteratorUtil for doing quasi-random-ish iterations over index ranges
- Add CollectVertexPositions() to MeshIndexUtil.h, for creating arrays/sets of vertex positions as a one-liner
- Add FMeshWeights::CotanWeightsBlendSafe() to support cotan-based smoothing of arbitrary properties
- Add TMinVolumeBox3::SolveSubsample() which will (quasi-randomly) subsample a set of the input points to reduce cost of box computation
#rb david.hill
#rnx
#jira none

[CL 16450731 by Ryan Schmidt in ue5-main branch]
2021-05-25 12:13:39 -04:00
Ryan Schmidt
fdb2bab149 GeometryProcessing: Move MeshConversion module from GeometryProcessing plugin to Runtime. Transfer necessary additional files from DynamicMesh to GeometryCore. Move functions from MeshIndexUtil and MeshAdapterUtil namespaces to UE::Geometry namespace.
#rb none
#rnx
#jira none
#preflight 60a7e75e7d6b060001c61f47

[CL 16428413 by Ryan Schmidt in ue5-main branch]
2021-05-22 01:32:46 -04:00
Ryan Schmidt
623e4f96fe GeometryCore: create new GeometryCore Module. Move GeometricObjects code from GeometryProcessing plugin to this new module, as well as core FDynamicMesh3 classes (attributes, aabbtree/octree, change tracking). Update module Build.cs files that reference GeometricObjects.
#rb none
#rnx
#jira none
#preflight 60a713700569f300014a064a

[CL 16415082 by Ryan Schmidt in ue5-main branch]
2021-05-21 01:04:38 -04:00