Getting maybe closer to kuwahara
This commit is contained in:
@@ -30,9 +30,9 @@ void main() {
|
|||||||
lumaSquaredSum_tr += (luma * luma);
|
lumaSquaredSum_tr += (luma * luma);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
vec3 mean_tr = colorSum_tr / 9.0;
|
vec3 mean_tr = colorSum_tr / 25.0;
|
||||||
float mean_luma_tr = lumaSum_tr / 9.0;
|
float mean_luma_tr = lumaSum_tr / 25.0;
|
||||||
float variance_tr = (lumaSquaredSum_tr / 9.0) - (mean_luma_tr * mean_luma_tr);
|
float variance_tr = (lumaSquaredSum_tr / 25.0) - (mean_luma_tr * mean_luma_tr);
|
||||||
|
|
||||||
// =========================================================================
|
// =========================================================================
|
||||||
// QUADRANT 2: Oben-Links (Top-Left)
|
// QUADRANT 2: Oben-Links (Top-Left)
|
||||||
@@ -52,9 +52,9 @@ void main() {
|
|||||||
lumaSquaredSum_tl += (luma * luma);
|
lumaSquaredSum_tl += (luma * luma);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
vec3 mean_tl = colorSum_tl / 9.0;
|
vec3 mean_tl = colorSum_tl / 25.0;
|
||||||
float mean_luma_tl = lumaSum_tl / 9.0;
|
float mean_luma_tl = lumaSum_tl / 25.0;
|
||||||
float variance_tl = (lumaSquaredSum_tl / 9.0) - (mean_luma_tl * mean_luma_tl);
|
float variance_tl = (lumaSquaredSum_tl / 25.0) - (mean_luma_tl * mean_luma_tl);
|
||||||
|
|
||||||
// =========================================================================
|
// =========================================================================
|
||||||
// QUADRANT 3: Unten-Links (Bottom-Left)
|
// QUADRANT 3: Unten-Links (Bottom-Left)
|
||||||
@@ -74,9 +74,9 @@ void main() {
|
|||||||
lumaSquaredSum_bl += (luma * luma);
|
lumaSquaredSum_bl += (luma * luma);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
vec3 mean_bl = colorSum_bl / 9.0;
|
vec3 mean_bl = colorSum_bl / 25.0;
|
||||||
float mean_luma_bl = lumaSum_bl / 9.0;
|
float mean_luma_bl = lumaSum_bl / 25.0;
|
||||||
float variance_bl = (lumaSquaredSum_bl / 9.0) - (mean_luma_bl * mean_luma_bl);
|
float variance_bl = (lumaSquaredSum_bl / 25.0) - (mean_luma_bl * mean_luma_bl);
|
||||||
|
|
||||||
// =========================================================================
|
// =========================================================================
|
||||||
// QUADRANT 4: Unten-Rechts (Bottom-Right)
|
// QUADRANT 4: Unten-Rechts (Bottom-Right)
|
||||||
@@ -96,29 +96,35 @@ void main() {
|
|||||||
lumaSquaredSum_br += (luma * luma);
|
lumaSquaredSum_br += (luma * luma);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
vec3 mean_br = colorSum_br / 9.0;
|
vec3 mean_br = colorSum_br / 25.0;
|
||||||
float mean_luma_br = lumaSum_br / 9.0;
|
float mean_luma_br = lumaSum_br / 25.0;
|
||||||
float variance_br = (lumaSquaredSum_br / 9.0) - (mean_luma_br * mean_luma_br);
|
float variance_br = (lumaSquaredSum_br / 25.0) - (mean_luma_br * mean_luma_br);
|
||||||
|
|
||||||
// =========================================================================
|
// =========================================================================
|
||||||
// FINALE AUSWAHL: Den Quadranten mit der NIEDRIGSTEN Varianz finden
|
// FINALE AUSWAHL: Den Quadranten mit der NIEDRIGSTEN Varianz finden
|
||||||
// =========================================================================
|
// =========================================================================
|
||||||
float minVariance = variance_tr;
|
// 1. Varianzen direkt für den harten Effekt quadrieren
|
||||||
|
float v_tr = variance_tr * variance_tr;
|
||||||
|
float v_tl = variance_tl * variance_tl;
|
||||||
|
float v_bl = variance_bl * variance_bl;
|
||||||
|
float v_br = variance_br * variance_br;
|
||||||
|
|
||||||
|
// 2. Sauberer Vergleich der quadrierten Werte
|
||||||
|
float minVariance = v_tr;
|
||||||
vec3 finalColor = mean_tr;
|
vec3 finalColor = mean_tr;
|
||||||
|
|
||||||
if (variance_tl < minVariance) {
|
if (v_tl < minVariance) {
|
||||||
minVariance = variance_tl;
|
minVariance = v_tl;
|
||||||
finalColor = mean_tl;
|
finalColor = mean_tl;
|
||||||
}
|
}
|
||||||
if (variance_bl < minVariance) {
|
if (v_bl < minVariance) {
|
||||||
minVariance = variance_bl;
|
minVariance = v_bl;
|
||||||
finalColor = mean_bl;
|
finalColor = mean_bl;
|
||||||
}
|
}
|
||||||
if (variance_br < minVariance) {
|
if (v_br < minVariance) {
|
||||||
minVariance = variance_br;
|
minVariance = v_br;
|
||||||
finalColor = mean_br;
|
finalColor = mean_br;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Farbe auf den Bildschirm bringen!
|
|
||||||
fragColor = vec4(finalColor, 1.0);
|
fragColor = vec4(finalColor, 1.0);
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user