varying float red; varying float green; varying float blue; varying vec3 rgbValue; varying vec4 v_tex_coord; varying vec4 v_pos_world; uniform sampler2D albo; uniform sampler2D lightBuffer; //灰度图1 float grayPic(vec3 vec3Color) { return (vec3Color.x>vec3Color.y?vec3Color.x:vec3Color.y)>vec3Color.z?(vec3Color.x>vec3Color.y?vec3Color.x:vec3Color.y):vec3Color.z; } //灰度图2 float grayPic2(vec3 vec3Color) { return (vec3Color.x + vec3Color.y + vec3Color.z)/3.0; } //灰度图3 float grayPic3(vec3 vec3Color) { return (vec3Color.x*0.3 + vec3Color.y*0.59 + vec3Color.z*0.11); } //黑白效果 float whiteBlack(vec3 vec3Color) { float ave = (vec3Color.x + vec3Color.y+vec3Color.z)/3.0; if(ave>0.255) return 1.0; else return 0.0; } //底片效果 vec3 negativeMode(vec3 vec3Color) { vec3 resultVec3; resultVec3.x = 1 - vec3Color.x; resultVec3.y = 1 - vec3Color.y; resultVec3.z = 1 - vec3Color.z; return resultVec3; } //浮雕效果void main(void)
{
vec4 clr = texture2D(albo, v_tex_coord.xy);
vec4 tex_coord = v_pos_world;
tex_coord.xy/=tex_coord.w;
tex_coord.x=0.5 * tex_coord.x+0.5;
tex_coord.y=0.5 * tex_coord.y+0.5;
vec4 bfr = texture2D(lightBuffer,tex_coord.xy);
//gl_FragColor = vec4( red, green, blue, 1.0 );
gl_FragColor = clr * 0.8 + bfr*0.1;
//gl_FragColor.rgb = max(gl_FragColor.r,gl_FragColor.g);
//gl_FragColor.rgb = whiteBlack(gl_FragColor);
gl_FragColor.rgb = negativeMode(gl_FragColor).xyz;
}
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于