diff options
Diffstat (limited to 'indra/newview/app_settings/shaders/class1/deferred/cofF.glsl')
-rw-r--r-- | indra/newview/app_settings/shaders/class1/deferred/cofF.glsl | 64 |
1 files changed, 31 insertions, 33 deletions
diff --git a/indra/newview/app_settings/shaders/class1/deferred/cofF.glsl b/indra/newview/app_settings/shaders/class1/deferred/cofF.glsl index d95a33a6be..4a26b8924a 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/cofF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/cofF.glsl @@ -1,24 +1,24 @@ -/** +/** * @file cofF.glsl * * $LicenseInfo:firstyear=2007&license=viewerlgpl$ * Second Life Viewer Source Code * Copyright (C) 2007, Linden Research, Inc. - * + * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License only. - * + * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * + * * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA * $/LicenseInfo$ */ @@ -30,8 +30,6 @@ out vec4 frag_color; uniform sampler2D diffuseRect; uniform sampler2D depthMap; -uniform float depth_cutoff; -uniform float norm_cutoff; uniform float focal_distance; uniform float blur_constant; uniform float tan_pixel_angle; @@ -45,35 +43,35 @@ in vec2 vary_fragcoord; float calc_cof(float depth) { - float sc = (depth-focal_distance)/-depth*blur_constant; - - sc /= magnification; - - // tan_pixel_angle = pixel_length/-depth; - float pixel_length = tan_pixel_angle*-focal_distance; - - sc = sc/pixel_length; - sc *= 1.414; - - return sc; + float sc = (depth-focal_distance)/-depth*blur_constant; + + sc /= magnification; + + // tan_pixel_angle = pixel_length/-depth; + float pixel_length = tan_pixel_angle*-focal_distance; + + sc = sc/pixel_length; + sc *= 1.414; + + return sc; } -void main() +void main() { - vec2 tc = vary_fragcoord.xy; + vec2 tc = vary_fragcoord.xy; float z = texture(depthMap, tc).r; - z = z*2.0-1.0; - vec4 ndc = vec4(0.0, 0.0, z, 1.0); - vec4 p = inv_proj*ndc; - float depth = p.z/p.w; - - vec4 diff = texture(diffuseRect, vary_fragcoord.xy); - - float sc = calc_cof(depth); - sc = min(sc, max_cof); - sc = max(sc, -max_cof); - - frag_color.rgb = diff.rgb; - frag_color.a = sc/max_cof*0.5+0.5; + z = z*2.0-1.0; + vec4 ndc = vec4(0.0, 0.0, z, 1.0); + vec4 p = inv_proj*ndc; + float depth = p.z/p.w; + + vec4 diff = texture(diffuseRect, vary_fragcoord.xy); + + float sc = calc_cof(depth); + sc = min(sc, max_cof); + sc = max(sc, -max_cof); + + frag_color.rgb = diff.rgb; + frag_color.a = sc/max_cof*0.5+0.5; } |