1、平滑

shader

//平滑uniformsampler2DU_MainTexture;uniformsampler2DU_SubTexture;varyingvec2M_coord;voidmain(){vec4color=vec4(0.0);intcoreSize=3;floattexelOffset=1/300.0;floatkernel[9];kernel[6]=1;kernel[7]=1;kernel[8]=1;kernel[3]=1;kernel[4]=1;kernel[5]=1;kernel[0]=1;kernel[1]=1;kernel[2]=1;intindex=0;for(inty=0;y<coreSize;y++){for(intx=0;x<coreSize;x++){vec4currentColor=texture2D(U_MainTexture,M_coord+vec2((-1+x)*texelOffset,(-1+y)*texelOffset));color+=currentColor*kernel[index++];}}color/=9.0;gl_FragColor=color;}

效果图


2、锐化

shader

//锐化uniformsampler2DU_MainTexture;uniformsampler2DU_SubTexture;varyingvec2M_coord;voidmain(){vec4color=vec4(0.0);intcoreSize=3;floattexelOffset=1/300.0;floatkernel[9];kernel[6]=0;kernel[7]=-1;kernel[8]=0;kernel[3]=-1;kernel[4]=4;kernel[5]=-1;kernel[0]=0;kernel[1]=-1;kernel[2]=0;intindex=0;for(inty=0;y<coreSize;y++){for(intx=0;x<coreSize;x++){vec4currentColor=texture2D(U_MainTexture,M_coord+vec2((-1+x)*texelOffset,(-1+y)*texelOffset));color+=currentColor*kernel[index++];}}//color/=9.0;gl_FragColor=4.0*color+texture2D(U_MainTexture,M_coord);}

效果图


3、边缘检测

shader

//边缘检测uniformsampler2DU_MainTexture;uniformsampler2DU_SubTexture;varyingvec2M_coord;voidmain(){vec4color=vec4(0.0);intcoreSize=3;floattexelOffset=1/300.0;floatkernel[9];kernel[6]=0;kernel[7]=1;kernel[8]=0;kernel[3]=1;kernel[4]=-4;kernel[5]=1;kernel[0]=0;kernel[1]=1;kernel[2]=0;intindex=0;for(inty=0;y<coreSize;y++){for(intx=0;x<coreSize;x++){vec4currentColor=texture2D(U_MainTexture,M_coord+vec2((-1+x)*texelOffset,(-1+y)*texelOffset));color+=currentColor*kernel[index++];}}//color/=9.0;gl_FragColor=4.0*color+texture2D(U_MainTexture,M_coord);}

效果图