如何画在纹理中间画一个光圈,原本代码写成这样:
vec2 position = (uv * 2.-1.0) * vec2(1.0, 1.0);
float d = abs( length(position) - 0.8) * 5.0;
gl_FragColor += vec4(0.2/d, 0.2 / d, 0.2 / d, 1);
然后有个问题,这样会将纹理的非光圈部分的颜色也改变了,然后改成
if( length(position)<0.8 && length(position)>0.7 ){
gl_FragColor += vec4(0.2/d, 0.2 / d, 0.2 / d, 1);
}else{
gl_FragColor =src_color;
}
这样写虽然不影响其非光圈部分的颜色,但也没有光圈的感觉了。
如何在纹理中间画个光圈而不影响光圈以外位置的颜色?