X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=builtin_data%2F_ambientocclusion_combine.glsl;h=353ea8c385d1d0166cc03d096fa4bf174588bc3a;hb=e92de029768eef5f0fd744329e589161b46d0762;hp=616bada9e4b88b5cda6c5b139a363bd1a907d261;hpb=9a63244c1342337915c4610401a24c09fa72cc3d;p=libs%2Fgl.git diff --git a/builtin_data/_ambientocclusion_combine.glsl b/builtin_data/_ambientocclusion_combine.glsl index 616bada9..353ea8c3 100644 --- a/builtin_data/_ambientocclusion_combine.glsl +++ b/builtin_data/_ambientocclusion_combine.glsl @@ -1,7 +1,8 @@ -import postprocess; +import flat_effect; import _ambientocclusion; #pragma MSP stage(fragment) +layout(location=0) out vec4 frag_color; void main() { vec3 center = unproject(vec3(vertex.xy, texture(depth, texcoord).r)); @@ -14,16 +15,16 @@ void main() vec2 offset = vec2(float(i), float(j))-1.5; vec2 sample_coord = texcoord+offset*tex_scale; float occ = texture(occlusion, sample_coord).r; - float sample = texture(depth, sample_coord).r; + float sample_depth = texture(depth, sample_coord).r; float z_range = occlusion_radius*length(offset)*edge_depth_threshold; float min_depth = project(vec3(center.xy, center.z+z_range)).z; float max_depth = project(vec3(center.xy, center.z-z_range)).z; - if(sample>=min_depth && sample<=max_depth) + if(sample_depth>=min_depth && sample_depth<=max_depth) { sum += occ; count += 1.0; } } vec4 src_color = texture(source, texcoord); - frag_color = vec4(src_color.rgb*mix(1.0, min(sum*2.0/count, 1.0), darkness), src_color.a); + frag_color = vec4(src_color.rgb*mix(1.0, min(sum/count, 1.0), darkness), src_color.a); }