Description
SimplifyMedialSkeleton (v2)
Simplify a medial skeleton using the quadric error metric
Input(s) : MedialSkeleton [Intrinsic] - Medial skeleton to simplify TargetMesh [Intrinsic] - Mesh the skeleton was sampled from, used to compute the error metric MinSpheres - Stop simplifying at this sphere count QEMErrorThresholdSqrt - If positive, will not collapse edges if it would introduce more quadric error than the square of this threshold. (Note: Not a distance error threshold.) EdgeLengthThreshold - If positive, the maximum edge length to consider for collapse SphereRadiusThreshold - If positive, the maximum sphere radius to consider for collapse. If either cluster's medial sphere on an edge has smaller radii, it is allowed to collapse. SphereOverlapThreshold - If positive, the minimum medial sphere overlap fraction to consider for collapse -- so e.g. at 1.0 we will only collapse an edge if its smaller medial sphere is contained in the larger. (A degenerate zero-radius sphere is considered to fully overlap any sphere it touches.) bOnlySimplifySurfaces - If true, only simplify edges of skeleton surfaces (edges that have triangles associated) ClusterSkeletonDistanceWt - How much the simplifier should attempt to remain close to the initial skeleton, vs keeping medial spheres close to the mesh surface. In the [0,1] range. At 0 the original skeleton is not considered; at 1 the mesh surface is not considered. bPreventEdgeSurfaceIntersections - If true, prevent collapses that would introduce intersections between skeleton edges and the mesh bSplitThinTriEdges - Whether to split edges attached to skinny triangles before simplifying, which can add useful degrees of freedom to the simplifier SplitThinTriEdgeAngleThresholdDeg - Minimum angle (degrees) at the opposite vertex for an edge to be a split candidate SplitThinTriEdgePosErrorWt - Position error weight used when re-clustering vertices after thin-triangle edge splits
Information
| Module | GeometryCollectionNodes |
| Category | MedialSkeletonSampling |
| Tags | Reduce |
| Type | FSimplifyMedialSkeletonDataflowNode_v2 |
Inputs
| Name | Description | Permitted Types | Default Value |
|---|---|---|---|
| MedialSkeleton | Medial skeleton to simplify | FDataflowMedialSkeleton | () |
| TargetMesh | Mesh the skeleton was sampled from, used to compute the error metric | TObjectPtr<UDataflowMesh> | None |
| MinSpheres | Stop simplifying at this sphere count | int32 | 1 |
| QEMErrorThresholdSqrt | If positive, will not collapse edges if it would introduce more quadric error than the square of this threshold. (Note: Not a distance error threshold.) | float | 0.000000 |
| EdgeLengthThreshold | If positive, the maximum edge length to consider for collapse | float | 0.000000 |
| SphereRadiusThreshold | If positive, the maximum sphere radius to consider for collapse. If either cluster's medial sphere on an edge has smaller radii, it is allowed to collapse. | float | 0.000000 |
| SphereOverlapThreshold | If positive, the minimum medial sphere overlap fraction to consider for collapse -- so e.g. at 1.0 we will only collapse an edge if its smaller medial sphere is contained in the larger. (A degenerate zero-radius sphere is considered to fully overlap any sphere it touches.) | float | 0.000000 |
| bOnlySimplifySurfaces | If true, only simplify edges of skeleton surfaces (edges that have triangles associated) | bool | True |
| ClusterSkeletonDistanceWt | How much the simplifier should attempt to remain close to the initial skeleton, vs keeping medial spheres close to the mesh surface. In the [0,1] range. At 0 the original skeleton is not considered; at 1 the mesh surface is not considered. | float | 0.500000 |
| bPreventEdgeSurfaceIntersections | If true, prevent collapses that would introduce intersections between skeleton edges and the mesh | bool | True |
| bSplitThinTriEdges | Whether to split edges attached to skinny triangles before simplifying, which can add useful degrees of freedom to the simplifier | bool | True |
| SplitThinTriEdgeAngleThresholdDeg | Minimum angle (degrees) at the opposite vertex for an edge to be a split candidate | float | 120.000000 |
| SplitThinTriEdgePosErrorWt | Position error weight used when re-clustering vertices after thin-triangle edge splits | float | 0.200000 |
Outputs
| Name | Description | Permitted Types | Default Value |
|---|---|---|---|
| MedialSkeleton | Medial skeleton to simplify | FDataflowMedialSkeleton | |
| MedialSpheres | TArray<FSphere> |