Commit: 6148295f1ab3a9a68e92878a9fcbef7af33be96a
Author: Antony Riakiotakis
Date:   Tue Jan 6 20:27:52 2015 +0100
Branches: viewport_experiments
https://developer.blender.org/rB6148295f1ab3a9a68e92878a9fcbef7af33be96a

fragment shader to downsample near circle of confusion - rename texture
coordinates so it's clearer they are reusable.

===================================================================

M       source/blender/gpu/shaders/gpu_shader_fx_dof_high_frag.glsl
M       source/blender/gpu/shaders/gpu_shader_fx_dof_high_vert.glsl

===================================================================

diff --git a/source/blender/gpu/shaders/gpu_shader_fx_dof_high_frag.glsl 
b/source/blender/gpu/shaders/gpu_shader_fx_dof_high_frag.glsl
index 8b7974c..851dd3e 100644
--- a/source/blender/gpu/shaders/gpu_shader_fx_dof_high_frag.glsl
+++ b/source/blender/gpu/shaders/gpu_shader_fx_dof_high_frag.glsl
@@ -2,10 +2,10 @@ uniform vec2 invrendertargetdim;
 
 //texture coordinates for framebuffer read
 varying vec4 uvcoordsvar;
-varying vec2 depth_uv1;
-varying vec2 depth_uv2;
-varying vec2 depth_uv3;
-varying vec2 depth_uv4;
+varying vec2 uv1;
+varying vec2 uv2;
+varying vec2 uv3;
+varying vec2 uv4;
 
 // color buffer
 uniform sampler2D colorbuffer;
@@ -32,10 +32,10 @@ void half_downsample_frag(void)
 {
        vec4 depthv, coc;
        
-       depthv.r = texture2D(depthbuffer, depth_uv1).r;
-       depthv.g = texture2D(depthbuffer, depth_uv2).r;
-       depthv.b = texture2D(depthbuffer, depth_uv3).r;
-       depthv.a = texture2D(depthbuffer, depth_uv4).r;
+       depthv.r = texture2D(depthbuffer, uv1).r;
+       depthv.g = texture2D(depthbuffer, uv2).r;
+       depthv.b = texture2D(depthbuffer, uv3).r;
+       depthv.a = texture2D(depthbuffer, uv4).r;
        
        coc = 
calculate_signed_coc(get_view_space_z_from_depth(vec4(viewvecs[0].z), 
vec4(viewvecs[1].z), depthv));
        
@@ -47,6 +47,21 @@ void half_downsample_frag(void)
        gl_FragData[0] = texture2D(colorbuffer, uvcoordsvar.xy);
 }
 
+
+void downsample_coc(void)
+{
+       /* basically here we just assemble all nearby values from the texture 
and use the maximum for near coc 
+        * this ensures the gathe as scatter technique at the end will work */
+       
+       vec4 coc;
+       coc.r = texture2D(cocbuffer, uv1).r;
+       coc.g = texture2D(cocbuffer, uv2).r;
+       coc.b = texture2D(cocbuffer, uv3).r;
+       coc.a = texture2D(cocbuffer, uv4).r;
+       
+       gl_FragColor.r = max(max(coc.r, coc.g), max(coc.b, coc.a));
+}
+
 void final_combine_frag(void)
 {
        vec4 coc = texture2D(cocbuffer, uvcoordsvar.xy);
diff --git a/source/blender/gpu/shaders/gpu_shader_fx_dof_high_vert.glsl 
b/source/blender/gpu/shaders/gpu_shader_fx_dof_high_vert.glsl
index 7feccbe..fef4541 100644
--- a/source/blender/gpu/shaders/gpu_shader_fx_dof_high_vert.glsl
+++ b/source/blender/gpu/shaders/gpu_shader_fx_dof_high_vert.glsl
@@ -2,10 +2,10 @@ uniform vec2 invrendertargetdim;
 
 //texture coordinates for framebuffer read
 varying vec4 uvcoordsvar;
-varying vec2 depth_uv1;
-varying vec2 depth_uv2;
-varying vec2 depth_uv3;
-varying vec2 depth_uv4;
+varying vec2 uv1;
+varying vec2 uv2;
+varying vec2 uv3;
+varying vec2 uv4;
 
 
 void vert_half_downsample(void)
@@ -13,10 +13,10 @@ void vert_half_downsample(void)
        uvcoordsvar = gl_MultiTexCoord0;
        gl_Position = gl_Vertex;
        
-       depth_uv1 = gl_MultiTexCoord0.xy + vec2(-0.5, -0.5) * 
invrendertargetdim;
-       depth_uv2 = gl_MultiTexCoord0.xy + vec2(-0.5, 0.5) * invrendertargetdim;
-       depth_uv3 = gl_MultiTexCoord0.xy + vec2(0.5, -0.5) * invrendertargetdim;
-       depth_uv4 = gl_MultiTexCoord0.xy + vec2(0.5, 0.5) * invrendertargetdim;
+       uv1 = gl_MultiTexCoord0.xy + vec2(-0.5, -0.5) * invrendertargetdim;
+       uv2 = gl_MultiTexCoord0.xy + vec2(-0.5, 0.5) * invrendertargetdim;
+       uv3 = gl_MultiTexCoord0.xy + vec2(0.5, -0.5) * invrendertargetdim;
+       uv4 = gl_MultiTexCoord0.xy + vec2(0.5, 0.5) * invrendertargetdim;
 }
 
 void vert_final_combine(void)

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to