Shader特效——“Median Filter效果”的实现 【GLSL】


效果图:

Shader特效——“Median Filter效果”的实现 【GLSL】_第1张图片


GLSL代码与算法注释:

#define SORT_SIZE  8

float sort[SORT_SIZE];
float medians[SORT_SIZE];

// [0., 1.] -> [0, 255]
float quant(float x)
{
   x = clamp(x, 0., 1.);
   return floor(x * 255.);
}

float pack(vec3 c)
{
   float lum = (c.x + c.y + c.z) * (1. / 3.);

   return lum;
}

vec3 unpack(float x)
{
   return vec3(x);
}

#define SWAP(a,b) { float t = sort[a]; sort[a] = sort[b]; sort[b] = t; }
void bubble_sort(int num)// 简单的冒泡排序
{
        // 把最小值移到最左边
        for(int j = 0; j < num; ++j)
        {
               for(int i= num-1; i >j; --i)
               {
                   if(sort[i] < sort[i-1])
                   {
                        SWAP(i, i-1);
                   }
               }
       

你可能感兴趣的:(Shader,ShaderJoy,——,Shader,实例详解)