首页 > 其他 > 详细

glsl计算sprite的亮度饱和度对比度

时间:2015-12-15 06:23:51      阅读:290      评论:0      收藏:0      [点我收藏+]
//glsl计算sprite的亮度饱和度对比度
#ifdef GL_ES
precision mediump float;                    
#endif
uniform sampler2D u_texture;                
varying vec2 v_texCoord;                    
varying vec4 v_fragmentColor;               

void main(void)                             
{                                           
    vec4 color = texture2D(u_texture, v_texCoord);               
    if(color.a >= 0.4)
    {                                    
        vec3 avg = vec3(0.5,0.5,0.5);                
        vec3 luncoeff = vec3 (0.2125, 0.7154, 0.0721);                
        float T1 = 0.4;                                                 
        float T2 = 2.4;                                                 
        //计算亮度                                                    
        vec3 brtColor = color.rgb * T2;                                  
        float intensityf = dot(brtColor,luncoeff);                         
        vec3 intensity = vec3(intensityf,intensityf,intensityf);        
        //计算饱和度        
        vec3 satColor = vec3(mix(intensity, brtColor, 1.));                
        //计算对比度    
        vec3 conColor = vec3(mix(avg, satColor, T1));                    
        gl_FragColor = vec4(conColor.r,conColor.g,conColor.b,color.a);    
    }
}

 

glsl计算sprite的亮度饱和度对比度

原文:http://www.cnblogs.com/beeasy/p/5047000.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!