diff options
author | Dave Parks <davep@lindenlab.com> | 2011-05-24 15:29:33 -0500 |
---|---|---|
committer | Dave Parks <davep@lindenlab.com> | 2011-05-24 15:29:33 -0500 |
commit | 4353eeb9288c95b98935e60928ec0b80de4e6145 (patch) | |
tree | 6707a858286f25cf7e389ff2f5e92099e9b4569b /indra/newview/app_settings/shaders/class1/effects | |
parent | fd574e34857accd55e736d855975767fd7768b79 (diff) |
SH-469 GL_ARB_texture_multisample support
Diffstat (limited to 'indra/newview/app_settings/shaders/class1/effects')
-rw-r--r-- | indra/newview/app_settings/shaders/class1/effects/glowExtractMSF.glsl | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/indra/newview/app_settings/shaders/class1/effects/glowExtractMSF.glsl b/indra/newview/app_settings/shaders/class1/effects/glowExtractMSF.glsl new file mode 100644 index 0000000000..c03a0c61bd --- /dev/null +++ b/indra/newview/app_settings/shaders/class1/effects/glowExtractMSF.glsl @@ -0,0 +1,38 @@ +/** + * @file glowExtractF.glsl + * + * $LicenseInfo:firstyear=2007&license=viewerlgpl$ + * $/LicenseInfo$ + */ + +#version 120 + +#extension GL_ARB_texture_rectangle : enable +#extension GL_ARB_texture_multisample : enable + +uniform sampler2DMS diffuseMap; +uniform float minLuminance; +uniform float maxExtractAlpha; +uniform vec3 lumWeights; +uniform vec3 warmthWeights; +uniform float warmthAmount; + +void main() +{ + ivec2 itc = ivec2(gl_TexCoord[0].xy); + vec4 fcol = vec4(0,0,0,0); + + for (int i = 0; i < samples; i++) + { + vec4 col = texelFetch(diffuseMap, itc, i); + + /// CALCULATING LUMINANCE (Using NTSC lum weights) + /// http://en.wikipedia.org/wiki/Luma_%28video%29 + float lum = smoothstep(minLuminance, minLuminance+1.0, dot(col.rgb, lumWeights ) ); + float warmth = smoothstep(minLuminance, minLuminance+1.0, max(col.r * warmthWeights.r, max(col.g * warmthWeights.g, col.b * warmthWeights.b)) ); + + fcol += vec4(col.rgb, max(col.a, mix(lum, warmth, warmthAmount) * maxExtractAlpha)); + } + + gl_FragColor = fcol/samples; +} |