10 private readonly
bool doReadback;
35 "Invalid number of iterations supplied to random swap dispatcher."
38 this.doReadback = doReadback;
43 public override string name => this.doesReadback ? $
"{base.name} (readback)" : base.name;
47 this.
KMiteration(clusteringTextures, rejectOld:
true);
55 this.
KMiteration(clusteringTextures, rejectOld:
false);
75 if (iterationsKM == 1)
80 bool result = iterations % iterationsKM == 1;
ClusteringRTsAndBuffers clusteringRTsAndBuffers
bool doRandomizeEmptyClusters
readonly ComputeShader computeShader
RandomSwapResult ValidateCandidatesReadback()
void RandomSwap(ClusteringTextures clusteringTextures)
void ValidateCandidatesGPU()
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
static bool IsNumIterationsValid(int iterationsKM, int iterations)
override bool usesStopCondition
DispatcherRSfixed(ComputeShader computeShader, int numIterations, bool doRandomizeEmptyClusters, bool useFullResTexRef, bool doReadback, ADispatcherRS.Parameters parameters, ClusteringRTsAndBuffers clusteringRTsAndBuffers)
override void RunClustering(ClusteringTextures clusteringTextures)
Call Dispose after using.