效果图:
GLSL代码与算法注释:
#define SORT_SIZE 8
float sort[SORT_SIZE];
float medians[SORT_SIZE];
//uniform sampler2D iChannel0;
#iChannel0 "file://./images/ShaderJoy.png"
//const vec2 iResolution = vec2(512.0, 512.0);
// [0., 1.] -> [0, 255]
float quant(float x) {
x = clamp(x, 0.0, 1.0);
return floor(x * 255.0);
}
// 将RGB颜色打包成亮度值
float pack(vec3 c) {
float lum = (c.x + c.y + c.z) * (1.0 / 3.0);
return lum;
}
// 解包