做游戏可能需要有些动态的改变图片效果要求,这些用ps做的很容易,但是耗资源,所以在这里列举几个常用的滤镜算法,效果算是一般,没ps的专业 ~~。
#ifdef GL_ES
precision mediump float;
#endif
uniform float Hue; //色相
uniform float Sat; //饱和度
uniform float Lig; //明度
uniform float Bri; //亮度
uniform float mode;
uniform vec2 TextureSize;
uniform vec2 resolution;
uniform vec3 GlowColor;//发光色
uniform float GlowRange;//发光范围
uniform float GlowExpand; //发光强度
uniform vec3 OutlineColor;//描边颜色
uniform float OutlineRange;//描边范围
varying vec4 v_fragmentColor;
varying vec2 v_texCoord;
1.色相/饱和度
if( Hue != 0.0 || Sat !=0.0 || Lig != 0.0 )
{
float Cmax, Cmin;
float D;
float H, S, L;
Cmax = max (R, max (G, B));
Cmin = min (R, min (G, B));
L = (Cmax + Cmin) /2.0;
if (Cmax == Cmin)
{
H =0.0;
S =0.0;
}
else
{
D = Cmax - Cmin;
if (L < 0.5)
{
S = D / (Cmax + Cmin);
}
else
{
S = D / (2.0 - (Cmax + Cmin));
}
if (R == Cmax