nathan mitchell
6353a138e5
GeometryProcessing: Improve the UV generation scheme PatchBuilder via a change to the polygroup generation stage, providing area aware sampling of the mesh surface and reducing the overcompensation effects that small, disconnected regions in the mesh were having on the overall segmentation.
...
Also provides a new CVar, modeling.DisableAutoUVAreaDensitySampling, which when set, returns the behavior to the original algorithm, in case there are legacy reasons to maintain that behavior.
#rb Jimmy.Andrews
#jira UE-144730
[CL 31581296 by nathan mitchell in 5.4 branch]
2024-02-16 16:41:15 -05:00
tyson brochu
72f42497ae
Remesher: add an optional edge length scale function that can be used for adaptive-density remeshing
...
#rb jimmy.andrews
#jira UE-207063
[CL 31537383 by tyson brochu in 5.4 branch]
2024-02-15 16:53:42 -05:00
david hill
027dcc782f
Geometry Processing: Make simple intrinsic triangulation mesh robust to misoriented triangles.
...
#jira UE-203213
#rb Jimmy.Andrews
[CL 31257145 by david hill in 5.4 branch]
2024-02-07 10:08:14 -05:00
jimmy andrews
367ec7c905
use a prime value greater than max unsigned int for the modulo iteration in remesher, mesh simplification, and FModuloIteration to ensure that it is always coprime with the number of elements being iterated over
...
#rb Brian.Karis
#changelist validated
#virtualized
[CL 31230169 by jimmy andrews in 5.4 branch]
2024-02-06 16:23:49 -05:00
jimmy andrews
d30a3c2e52
fix unreachable code warning in meshlinearization.h (change from an iteration+break to directly testing whether vertex has edges)
...
#rb rinat.abdrashitov
#changelist validated
#virtualized
[CL 31229231 by jimmy andrews in 5.4 branch]
2024-02-06 15:54:42 -05:00
rinat abdrashitov
1d33bcc942
Add an option to the ChaosCloth TransferSkinWeights node that allows to choose the max number of bone influences per vertex.
...
Propagate this change to the TransferBoneWeights and SmoothBoneWeights geometry operators by allowing to manually specify the max number of influences per bone for the output per-vertex weights.
#rb halfdan.ingvarsson, kriss.gossart
#jira UE-184186
#rnx
[CL 31024718 by rinat abdrashitov in 5.4 branch]
2024-01-30 17:43:54 -05:00
steve robb
f029468598
Fixed up a lot of bool-taking container resize functions to take EAllowShrinking instead.
...
[CL 30729174 by steve robb in ue5-main branch]
2024-01-19 16:41:35 -05:00
ryan schmidt
08a4212d9b
fix various issues with mesh bevel. Boundary-condition normals are now computed before any meshing. DisplaceVertices() now tries to keep terminator vertex positions on existing mesh edges (this should be improved to stay on group edges, in most cases a group edge can be selected topologically, but for now just snapping to mesh edges to handle the simple lowpoly-boxy cases). Simplify/improve computation of section planes in ApplyProfileShape_Round() - in all cases except corners, the section plane is well-defined by the two inset edge points and the original vertex position. This allowed removal of PlanarizeArcNormals function. Also now handling flipped orientation of quad patch relative to edge vertex sequence.
...
Added more error handling inFQuadGridPatch::InitializeFromQuadPatch. Fixed property invalidating in PolyEdit bevel activity.
[CL 30356938 by ryan schmidt in ue5-main branch]
2023-12-15 14:57:40 -05:00
ryan schmidt
a86e132008
Add support for multi-segment bevels with optional round profile in MeshBevel. The new code path is completely separated from the previous code. Works OK but handling of valence-3 bevel corners (filled with a rounded triangle) could be improved.
...
Expose in Geometry Script and PolyEdit functions.
[CL 30280525 by ryan schmidt in ue5-main branch]
2023-12-12 17:55:33 -05:00
jimmy andrews
5ad5ac93dd
add collision shape merging to the 'mesh to collision' tool
...
#jira UE-182346
#rb rinat.abdrashitov
[CL 30171356 by jimmy andrews in ue5-main branch]
2023-12-06 18:23:45 -05:00
ryan schmidt
d205e117bb
GeometryProcessing: various utility functions to assist with rounded bevels implementation
...
- add 2D version of VectorTanHalfAngle to VectorUtil.h
- add FDynamicMeshUVEditor::SetToPerVertexUVs, initializes overlay to have a single UV for each vertex
- add FQuadGridPatch::InitializeFromQuadPatch(), initializes the quad grid from external rows of quads and associated vertices
- add FQuadGridPatch::GetVertexColumn(), returns the list of vertices in a specific grid column
- add FQuadGridPatch::FindColumnIndex(), finds the index of the grid column that contains a specific Vertex ID
#rb rinat.abdrashitov
[CL 30166232 by ryan schmidt in ue5-main branch]
2023-12-06 15:32:17 -05:00
jimmy andrews
76c9580c1e
Add support for transparent meshes/faces in detect exterior visibility algorithm + associated geometry script function.
...
Also improve behavior (+ add control of behavior) for meshes with degenerate triangles, so meshes with degenerate triangles will not always be treated as visible.
#rb david.hill
[CL 30051521 by jimmy andrews in ue5-main branch]
2023-12-01 15:37:09 -05:00
jimmy andrews
b23af468dd
expose convex decomposition's shape protection to the set collision geometry tool
...
#rb rinat.abdrashitov
[CL 29876664 by jimmy andrews in ue5-main branch]
2023-11-21 18:01:32 -05:00
marc audy
9d3a7a188e
Fix C4702
...
#rb Ryan.Schmidt
#rnx
[CL 29867068 by marc audy in ue5-main branch]
2023-11-21 11:38:09 -05:00
jimmy andrews
a2c37576bd
prevent cones and cylinders-with-open-ends from being auto-detected as capsules by mesh to collision / shape auto-detection, by adding additional criteria to the capsule detection
...
plus add a fix to the sphere auto-detection angle tolerance case
#rb David.Hill
[CL 29762868 by jimmy andrews in ue5-main branch]
2023-11-15 17:56:28 -05:00
jimmy andrews
92b2f038c9
Expose exterior visibility algorithm in GeometryProcessing DynamicMesh module, and use it to add an operation to determine which mesh instances are fully occluded. Also add this operation as a new Geometry Script function.
...
#rb matija.kecman
[CL 29721084 by jimmy andrews in ue5-main branch]
2023-11-14 14:34:03 -05:00
jimmy andrews
5242b95c81
add an angle-based metric for controlling sphere approximation acceptance, and clarify that the existing radial tolerance is vs the best distance possible for an edge of that length rather than the actual distance to the sphere surface. The angle tolerance gives an intuitive control for how coarse a tessellation could be accepted as a sphere.
...
Set a default value of 72 degrees max angle, so that e.g. cone volumes aren't recognized as spheres.
#rb matija.kecman
[CL 29322771 by jimmy andrews in ue5-main branch]
2023-11-01 13:07:51 -04:00
jimmy andrews
255c215278
Make group topology choose an average edge position instead of a midpoint when the edge is a self-loop
...
#jira UE-194590
#rb matija.kecman
[CL 29025981 by jimmy andrews in ue5-main branch]
2023-10-23 21:07:20 -04:00
jimmy andrews
77b35bc5d2
Make more collision geometry types support Min Thickness in the Mesh to Collision tool + Make the tool disable the slider for shapes that don't support it (Convex Decomp and Level Sets)
...
Add Min Thickness support to the Mesh Convex Hull class
#jira UE-197623
#rb david.hill
[CL 28717587 by jimmy andrews in ue5-main branch]
2023-10-12 13:34:51 -04:00
jimmy andrews
edc21b808e
Add a normal-based clustering algorithm which groups connected triangle groups based on the current average normal of the group.
...
Use this algorithm in the polygroups generator tool, so we get more useful groups on smooth surfaces (like a cylinder)
Also add a helper to the FSizedDisjointSet class to easily get the number of groups in the set and a mapping between compact group indices and sparse group IDs
#rb david.hill
[CL 28433389 by jimmy andrews in ue5-main branch]
2023-10-03 17:20:18 -04:00
tyson brochu
df3dfe3be5
A few mesh derivatives with respect to individual vertex positions
...
#rb jimmy.andrews
#jira UE-195851
[CL 28000493 by tyson brochu in ue5-main branch]
2023-09-19 12:45:56 -04:00
jimmy andrews
762d32878c
make 'mesh to collision' tool's box detection algorithm look for 6 shared planes rather than 6 shared triangle normal directions + make it early-out if it finds more than 6. Fixes staircases being detected as boxes.
...
#jira UE-183642
#rb tyson.brochu
[CL 27839819 by jimmy andrews in ue5-main branch]
2023-09-13 13:50:38 -04:00
matija kecman
84bdab0304
Support Geometry Selection in the Tangents tool and fix some bugs
...
#jira UE-181650
#rb jimmy.andrews
[CL 27584315 by matija kecman in ue5-main branch]
2023-09-04 07:29:03 -04:00
rinat abdrashitov
4ccfed2a3d
Fixed a bug where overlay normals were used instead of the per-vertex normals.
...
#rb david.hill
#rnx
[CL 26743550 by rinat abdrashitov in ue5-main branch]
2023-08-01 12:45:38 -04:00
rinat abdrashitov
ac8014e909
Added ability to specify force inpaint mask via weight map name in addition to just plain array.
...
#rb jimmy.andrews
#rnx
[CL 26583207 by rinat abdrashitov in ue5-main branch]
2023-07-25 14:34:41 -04:00