FNormalFlowRemesher

Remeshing with "face aligned projection".

Windows
MacOS
Linux

Inheritance Hierarchy

References

Module

DynamicMesh

Header

/Engine/Plugins/Experimental/GeometryProcessing/Source/DynamicMesh/Public/NormalFlowRemesher.h

Include

#include "NormalFlowRemesher.h"

Syntax

class FNormalFlowRemesher : public FQueueRemesher

Remarks

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.

Variables

Name Description

Public variable

int

 

FaceProjectionPassesPerRemeshIteration

During each call to RemeshIteration, do this many passes of face-aligned projection.

Public variable

int

 

NumExtraProjectionIterations

Additional projection iterations after the usual remesh step.

Protected variable

TArray< double ...

 

TempWeightBuffer

Per-vertex weights for face projection pass.

Constructors

Name Description

Public function

FNormalFlowRemesher

(
    FDynamicMesh3* MeshIn
)

Functions

Name Description

Protected function Const

bool

 

EdgeFlipWouldReduceNormalError

(
    int EdgeID,
    double BadEdgeErrorThreshold,
    double ImprovementRatioThreshold
)

Test to see if flipping an edge would improve "normal error".

Protected function

void

 

InitializeVertexBufferForFacePass()

Similar to InitializeVertexBufferForPass, but also initialize the additional per-vertex weight buffer.

Protected function

void

 

RemeshWithFaceProjection()

Do remeshing with face-aligned projection.

Protected function

void

 

TrackedEdgeFlipPass()

Flip all edges for which EdgeFlipWouldReduceNormalError returns true

Protected function

void

 

TrackedFaceProjectionPass

(
    double& MaxDistanceMoved
)

Perform face-aligned projection onto the target mesh. Queue edges whose lengths change because of it.

Overridden from FQueueRemesher

Name Description

Protected function Virtual

void

 

TrackedFullProjectionPass

(
    bool bParallel
)

This is called during RemeshIteration.

Overridden from FRemesher

Name Description

Public function Virtual

void

 

BasicRemeshPass()

"Outer loop" for all remeshing operations

Help shape the future of Unreal Engine documentation! Tell us how we're doing so we can serve you better.
Take our survey
Dismiss