You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
Add option to drive adding more negative space samples when the current samples don't cover the space identified by Voxel Search (and are farther apart than the target Sample Spacing), to make the negative space coverage algorithm better able to protect space in challenging cases where a smaller fixed number of samples would fail.
#rb rinat.abdrashitov [CL 26314665 by jimmy andrews in ue5-main branch]
This commit is contained in:
@@ -251,6 +251,7 @@ void FGenerateClusterConvexHullsFromLeafHullsDataflowNode::Evaluate(Dataflow::FC
|
||||
NegativeSpaceSettings.ReduceRadiusMargin = GetValue(Context, &NegativeSpaceTolerance);
|
||||
NegativeSpaceSettings.MinSpacing = GetValue(Context, &MinSampleSpacing);
|
||||
NegativeSpaceSettings.SampleMethod = ConvertNegativeSpaceSampleMethodDataflowEnum(SampleMethod);
|
||||
NegativeSpaceSettings.bRequireSearchSampleCoverage = bRequireSearchSampleCoverage;
|
||||
NegativeSpaceSettings.Sanitize();
|
||||
bHasNegativeSpace = UE::FractureEngine::Convex::ComputeConvexHullsNegativeSpace(*GeomCollection, NegativeSpace, NegativeSpaceSettings, bHasSelectionFilter, SelectionArray);
|
||||
}
|
||||
@@ -335,6 +336,7 @@ void FGenerateClusterConvexHullsFromChildrenHullsDataflowNode::Evaluate(Dataflow
|
||||
NegativeSpaceSettings.ReduceRadiusMargin = GetValue(Context, &NegativeSpaceTolerance);
|
||||
NegativeSpaceSettings.MinSpacing = GetValue(Context, &MinSampleSpacing);
|
||||
NegativeSpaceSettings.SampleMethod = ConvertNegativeSpaceSampleMethodDataflowEnum(SampleMethod);
|
||||
NegativeSpaceSettings.bRequireSearchSampleCoverage = bRequireSearchSampleCoverage;
|
||||
NegativeSpaceSettings.Sanitize();
|
||||
bHasNegativeSpace = UE::FractureEngine::Convex::ComputeConvexHullsNegativeSpace(*GeomCollection, NegativeSpace, NegativeSpaceSettings, bHasSelectionFilter, SelectionArray);
|
||||
}
|
||||
@@ -418,6 +420,7 @@ void FMergeConvexHullsDataflowNode::Evaluate(Dataflow::FContext& Context, const
|
||||
NegativeSpaceSettings.ReduceRadiusMargin = GetValue(Context, &NegativeSpaceTolerance);
|
||||
NegativeSpaceSettings.MinSpacing = GetValue(Context, &MinSampleSpacing);
|
||||
NegativeSpaceSettings.SampleMethod = ConvertNegativeSpaceSampleMethodDataflowEnum(SampleMethod);
|
||||
NegativeSpaceSettings.bRequireSearchSampleCoverage = bRequireSearchSampleCoverage;
|
||||
NegativeSpaceSettings.Sanitize();
|
||||
}
|
||||
if (bInProtectNegativeSpace && !bComputeNegativeSpacePerBone)
|
||||
|
||||
@@ -298,6 +298,10 @@ public:
|
||||
UPROPERTY(EditAnywhere, Category = NegativeSpace, meta = (EditCondition = "bProtectNegativeSpace", EditConditionHides))
|
||||
ENegativeSpaceSampleMethodDataflowEnum SampleMethod = ENegativeSpaceSampleMethodDataflowEnum::Uniform;
|
||||
|
||||
/** Whether to require that all candidate locations identified by Voxel Search are covered by negative space samples, up to the specified Min Sample Spacing. Only applies to Voxel Search. */
|
||||
UPROPERTY(EditAnywhere, Category = NegativeSpace, meta = (EditCondition = "bProtectNegativeSpace && SampleMethod == ENegativeSpaceSampleMethodDataflowEnum::VoxelSearch", EditConditionHides))
|
||||
bool bRequireSearchSampleCoverage = false;
|
||||
|
||||
/** Approximate number of spheres to consider when covering negative space */
|
||||
UPROPERTY(EditAnywhere, Category = NegativeSpace, meta = (DataflowInput, ClampMin = 1, EditCondition = "bProtectNegativeSpace", EditConditionHides))
|
||||
int32 TargetNumSamples = 50;
|
||||
@@ -367,6 +371,10 @@ public:
|
||||
UPROPERTY(EditAnywhere, Category = NegativeSpace, meta = (EditCondition = "bProtectNegativeSpace", EditConditionHides))
|
||||
ENegativeSpaceSampleMethodDataflowEnum SampleMethod = ENegativeSpaceSampleMethodDataflowEnum::Uniform;
|
||||
|
||||
/** Whether to require that all candidate locations identified by Voxel Search are covered by negative space samples, up to the specified Min Sample Spacing. Only applies to Voxel Search. */
|
||||
UPROPERTY(EditAnywhere, Category = NegativeSpace, meta = (EditCondition = "bProtectNegativeSpace && SampleMethod == ENegativeSpaceSampleMethodDataflowEnum::VoxelSearch", EditConditionHides))
|
||||
bool bRequireSearchSampleCoverage = false;
|
||||
|
||||
/** Approximate number of spheres to consider when covering negative space */
|
||||
UPROPERTY(EditAnywhere, Category = NegativeSpace, meta = (DataflowInput, ClampMin = 1, EditCondition = "bProtectNegativeSpace", EditConditionHides))
|
||||
int32 TargetNumSamples = 50;
|
||||
@@ -433,6 +441,10 @@ public:
|
||||
UPROPERTY(EditAnywhere, Category = NegativeSpace, meta = (EditCondition = "bProtectNegativeSpace", EditConditionHides))
|
||||
ENegativeSpaceSampleMethodDataflowEnum SampleMethod = ENegativeSpaceSampleMethodDataflowEnum::Uniform;
|
||||
|
||||
/** Whether to require that all candidate locations identified by Voxel Search are covered by negative space samples, up to the specified Min Sample Spacing. Only applies to Voxel Search. */
|
||||
UPROPERTY(EditAnywhere, Category = NegativeSpace, meta = (EditCondition = "bProtectNegativeSpace && SampleMethod == ENegativeSpaceSampleMethodDataflowEnum::VoxelSearch", EditConditionHides))
|
||||
bool bRequireSearchSampleCoverage = false;
|
||||
|
||||
/** Approximate number of spheres to consider when covering negative space */
|
||||
UPROPERTY(EditAnywhere, Category = NegativeSpace, meta = (DataflowInput, ClampMin = 1, EditCondition = "bProtectNegativeSpace", EditConditionHides))
|
||||
int32 TargetNumSamples = 50;
|
||||
|
||||
Reference in New Issue
Block a user