Choose your operating system:
Windows
macOS
Linux
| FMeshRefinerBase
|
Module |
|
Header |
/Engine/Plugins/Runtime/GeometryProcessing/Source/DynamicMesh/Public/NormalFlowRemesher.h |
Include |
#include "NormalFlowRemesher.h" |
class FNormalFlowRemesher : public UE::Geometry::FQueueRemesher
Remeshing with "face aligned projection". This approach to projection attempts to preserve sharp features in the mesh by aligning triangle normals with normals from the original mesh during the projection pass. This class also performs a pass of edge flips aimed at further aligning triangle normals to their originals. This can be helpful in fixing the occasional single "bad edge" along a sequence of feature edges.
Name | Description | ||
---|---|---|---|
|
bEnableParallelEdgeFlipPass |
Gather candidates for edge flipping in parallel, then do the actual flips sequentially. |
|
|
bSmoothInFillAreas |
Control whether or not we want to apply mesh smoothing in "free" areas that have not projected to target surface. |
|
|
int |
FaceProjectionPassesPerRemeshIteration |
During each call to RemeshIteration, do this many passes of face-aligned projection. |
|
float |
FillAreaDistanceMultiplier |
This is used as a multiplier on MaxEdgeLength to determine when we identify points as being in "free" areas. |
|
float |
FillAreaSmoothMultiplier |
This is used as a multiplier on the Remesher smoothing rate, applied to points identified as being in "free" areas. |
|
int |
MaxTriangleCount |
Cap on triangle count, to prevent runaway mesh messes. Ignored if zero. |
|
double |
NormalAlignmentSpeed |
Drag on normal alignment |
|
int |
NumExtraProjectionIterations |
Additional projection iterations after the usual remesh step. |
|
ProjectionVertexBuffer |
Per triangle-vertex projection positions for face projection pass. (Size >= 3 * MaxTriangleID) |
|
|
TArray< double ... |
ProjectionWeightBuffer |
Per triangle-vertex weights for face projection pass. (Size >= 3 * MaxTriangleID) |
|
double |
SurfaceProjectionSpeed |
Drag on surface projection |
|
TArray< double ... |
TempWeightBuffer |
Name | Description | |
---|---|---|
|
FNormalFlowRemesher ( |
Name | Description | ||
---|---|---|---|
|
EdgeFlipWouldReduceNormalError ( |
Test to see if flipping an edge would improve "normal error". |
|
|
InitializeVertexBufferForFacePass() |
Similar to InitializeVertexBufferForPass, but also initialize the additional per-vertex weight buffer. |
|
|
RemeshWithFaceProjection() |
Do remeshing with face-aligned projection. |
|
|
TrackedEdgeFlipPass() |
Flip all edges for which EdgeFlipWouldReduceNormalError returns true |
|
|
TrackedFaceProjectionPass ( |
Perform face-aligned projection onto the target mesh. Queue edges whose lengths change because of it. |
|
|
TrackedFaceProjectionPass_Serial ( |
Perform face-aligned projection onto the target mesh. Queue edges whose lengths change because of it. |
Name | Description | ||
---|---|---|---|
|
TrackedFullProjectionPass ( |
This is called during RemeshIteration. |
Name | Description | ||
---|---|---|---|
|
BasicRemeshPass() |
"Outer loop" for all remeshing operations |