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
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