Choose your operating system:
Windows
macOS
Linux
| FMeshRefinerBase
|
Module |
|
Header |
/Engine/Plugins/Runtime/GeometryProcessing/Source/DynamicMesh/Public/QueueRemesher.h |
Include |
#include "QueueRemesher.h" |
class FQueueRemesher : public UE::Geometry::FRemesher
Extension to Remesher that is smarter about which edges/vertices to touch:
A buffer tracks edges that were affected on last pass, and hence might need to be updated
FastSplitIteration() just does splits, to reach target edge length as quickly as possible
RemeshIteration() applies remesh pass for modified edges
TrackedFullSmoothPass_Buffer() smooths all vertices but only adds to queue if edge changes enough
TrackedFullProjectionPass() projects all vertices but only adds to queue if edge changes enough
Name | Description | ||
---|---|---|---|
|
TSet< int > |
EdgeBuffer |
Persistent buffer of edges to be processed. This buffer is filled then iterated over. |
|
EdgeShouldBeQueuedBuffer |
Whether an edge should be added to ModifiedEdges (used in async tasks) |
|
|
int |
MaxFastSplitIterations |
Max number of passes just doing edge splits. |
|
int |
MaxRemeshIterations |
Max number of passes doing full remeshing operations. |
|
ModifiedEdges |
Set of edges that have been modified during a given iteration. |
|
|
PostEdgeSplitFunction |
The function called after an edge split occurs. This function will enqueue edges in ModifiedEdges. |
|
|
SavedState |
Name | Description | |
---|---|---|
|
FQueueRemesher ( |
Name | Description | ||
---|---|---|---|
|
FastestRemesh() |
Converge on remeshed result as quickly as possible. |
|
|
int |
FastSplitIteration() |
This pass only does edge splits and enqueues modified vertex neighborhoods. |
|
PopState() |
||
|
PushState() |
||
|
QueueEdge ( |
||
|
QueueOneRing ( |
||
|
RemeshIteration() |
This pass does all edge operations plug smoothing and reprojection. |
|
|
ResetQueue() |
||
|
TrackedFullProjectionPass ( |
||
|
TrackedFullSmoothPass_Buffer ( |
||
|
TrackedMoveVerticesParallel |
Move all vertices in parallel. |
Name | Description | ||
---|---|---|---|
|
BasicRemeshPass() |
"Outer loop" for all remeshing operations |
|
|
InitializeVertexBufferForPass() |
||
|
OnEdgeSplit ( |
Call the function above to enqueue edges in the ModifiedEdges set. |
Name |
Description |
|
---|---|---|
|
SettingState |
We occasionally want to override the user-specified choices of edge operations to achieve some sub-step of a full remesh algorithm. |