28 public override string name => $
"{base.name} (readback)";
32 this.
KMiteration(clusteringTextures, rejectOld:
true);
34 int numFailedSwaps = 0;
42 this.
KMiteration(clusteringTextures, rejectOld:
false);
ClusteringRTsAndBuffers clusteringRTsAndBuffers
bool doRandomizeEmptyClusters
readonly ComputeShader computeShader
Call Dispose after using.
StopConditionOverride stopConditionOverride
RandomSwapResult ValidateCandidatesReadback()
void RandomSwap(ClusteringTextures clusteringTextures)
readonly Parameters parameters
Call Allocate before using and Dispose after using.
void KMiteration(ClusteringTextures textures, bool rejectOld)
First attributes pixels to clusters. Then updates cluster centers. In order to use the resulting clus...
override bool doesReadback
override bool usesStopCondition
DispatcherRSstopCondition(ComputeShader computeShader, bool doRandomizeEmptyClusters, bool useFullResTexRef, ADispatcherRS.Parameters parameters, ClusteringRTsAndBuffers clusteringRTsAndBuffers)
override void RunClustering(ClusteringTextures clusteringTextures)
const float varianceChangeThreshold
const int maxFailedSwaps
Stop when the number of failed swaps exceeds this value.
Call Dispose after using.