summaryrefslogtreecommitdiff
path: root/indra/newview/app_settings/shaders/class2/effects
diff options
context:
space:
mode:
authorBrad Kittenbrink <brad@lindenlab.com>2008-02-27 18:58:14 +0000
committerBrad Kittenbrink <brad@lindenlab.com>2008-02-27 18:58:14 +0000
commit6d52efe452aa8469e0343da1c7d108f3f52ab651 (patch)
treea87be48e9840d7fc1f7ee514d7c7f994e71fdb3c /indra/newview/app_settings/shaders/class2/effects
parent6027ad2630b8650cabcf00628ee9b0d25bedd67f (diff)
Merge of windlight into release (QAR-286). This includes all changes in
windlight14 which have passed QA (up through r79932). svn merge -r 80831:80833 svn+ssh://svn.lindenlab.com/svn/linden/branches/merge_windlight14_r80620
Diffstat (limited to 'indra/newview/app_settings/shaders/class2/effects')
-rw-r--r--indra/newview/app_settings/shaders/class2/effects/blurF.glsl31
-rw-r--r--indra/newview/app_settings/shaders/class2/effects/blurV.glsl35
-rw-r--r--indra/newview/app_settings/shaders/class2/effects/colorFilterF.glsl31
-rw-r--r--indra/newview/app_settings/shaders/class2/effects/drawQuadV.glsl14
-rw-r--r--indra/newview/app_settings/shaders/class2/effects/extractF.glsl22
-rw-r--r--indra/newview/app_settings/shaders/class2/effects/nightVisionF.glsl42
-rw-r--r--indra/newview/app_settings/shaders/class2/effects/simpleF.glsl14
7 files changed, 189 insertions, 0 deletions
diff --git a/indra/newview/app_settings/shaders/class2/effects/blurF.glsl b/indra/newview/app_settings/shaders/class2/effects/blurF.glsl
new file mode 100644
index 0000000000..94433202af
--- /dev/null
+++ b/indra/newview/app_settings/shaders/class2/effects/blurF.glsl
@@ -0,0 +1,31 @@
+/**
+ * @file blurf.glsl
+ *
+ * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
+ * $License$
+ */
+
+uniform sampler2DRect RenderTexture;
+uniform float bloomStrength;
+
+varying vec4 gl_TexCoord[gl_MaxTextureCoords];
+void main(void)
+{
+ float blurWeights[7];
+ blurWeights[0] = 0.05;
+ blurWeights[1] = 0.1;
+ blurWeights[2] = 0.2;
+ blurWeights[3] = 0.3;
+ blurWeights[4] = 0.2;
+ blurWeights[5] = 0.1;
+ blurWeights[6] = 0.05;
+
+ vec3 color = vec3(0,0,0);
+ for (int i = 0; i < 7; i++){
+ color += vec3(texture2DRect(RenderTexture, gl_TexCoord[i].st)) * blurWeights[i];
+ }
+
+ color *= bloomStrength;
+
+ gl_FragColor = vec4(color, 1.0);
+}
diff --git a/indra/newview/app_settings/shaders/class2/effects/blurV.glsl b/indra/newview/app_settings/shaders/class2/effects/blurV.glsl
new file mode 100644
index 0000000000..ba65b16cc1
--- /dev/null
+++ b/indra/newview/app_settings/shaders/class2/effects/blurV.glsl
@@ -0,0 +1,35 @@
+/**
+ * @file blurV.glsl
+ *
+ * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
+ * $License$
+ */
+
+uniform vec2 texelSize;
+uniform vec2 blurDirection;
+uniform float blurWidth;
+
+void main(void)
+{
+ // Transform vertex
+ gl_Position = ftransform();
+
+ vec2 blurDelta = texelSize * blurDirection * vec2(blurWidth, blurWidth);
+ vec2 s = gl_MultiTexCoord0.st - (blurDelta * 3.0);
+
+ // for (int i = 0; i < 7; i++) {
+ // gl_TexCoord[i].st = s + (i * blurDelta);
+ // }
+
+ // MANUALLY UNROLL
+ gl_TexCoord[0].st = s;
+ gl_TexCoord[1].st = s + blurDelta;
+ gl_TexCoord[2].st = s + (2. * blurDelta);
+ gl_TexCoord[3].st = s + (3. * blurDelta);
+ gl_TexCoord[4].st = s + (4. * blurDelta);
+ gl_TexCoord[5].st = s + (5. * blurDelta);
+ gl_TexCoord[6].st = s + (6. * blurDelta);
+
+ // gl_TexCoord[0].st = s;
+ // gl_TexCoord[1].st = blurDelta;
+}
diff --git a/indra/newview/app_settings/shaders/class2/effects/colorFilterF.glsl b/indra/newview/app_settings/shaders/class2/effects/colorFilterF.glsl
new file mode 100644
index 0000000000..623ef7a81a
--- /dev/null
+++ b/indra/newview/app_settings/shaders/class2/effects/colorFilterF.glsl
@@ -0,0 +1,31 @@
+/**
+ * @file colorFilterF.glsl
+ *
+ * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
+ * $License$
+ */
+
+uniform sampler2DRect RenderTexture;
+uniform float brightness;
+uniform float contrast;
+uniform vec3 contrastBase;
+uniform float saturation;
+uniform vec3 lumWeights;
+
+const float gamma = 2.0;
+
+void main(void)
+{
+ vec3 color = vec3(texture2DRect(RenderTexture, gl_TexCoord[0].st));
+
+ /// Modulate brightness
+ color *= brightness;
+
+ /// Modulate contrast
+ color = mix(contrastBase, color, contrast);
+
+ /// Modulate saturation
+ color = mix(vec3(dot(color, lumWeights)), color, saturation);
+
+ gl_FragColor = vec4(color, 1.0);
+}
diff --git a/indra/newview/app_settings/shaders/class2/effects/drawQuadV.glsl b/indra/newview/app_settings/shaders/class2/effects/drawQuadV.glsl
new file mode 100644
index 0000000000..29c2a0948c
--- /dev/null
+++ b/indra/newview/app_settings/shaders/class2/effects/drawQuadV.glsl
@@ -0,0 +1,14 @@
+/**
+ * @file drawQuadV.glsl
+ *
+ * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
+ * $License$
+ */
+
+void main(void)
+{
+ //transform vertex
+ gl_Position = ftransform();
+ gl_TexCoord[0] = gl_MultiTexCoord0;
+ gl_TexCoord[1] = gl_MultiTexCoord1;
+}
diff --git a/indra/newview/app_settings/shaders/class2/effects/extractF.glsl b/indra/newview/app_settings/shaders/class2/effects/extractF.glsl
new file mode 100644
index 0000000000..a1583b13eb
--- /dev/null
+++ b/indra/newview/app_settings/shaders/class2/effects/extractF.glsl
@@ -0,0 +1,22 @@
+/**
+ * @file extractF.glsl
+ *
+ * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
+ * $License$
+ */
+
+uniform sampler2DRect RenderTexture;
+uniform float extractLow;
+uniform float extractHigh;
+uniform vec3 lumWeights;
+
+void main(void)
+{
+ /// Get scene color
+ vec3 color = vec3(texture2DRect(RenderTexture, gl_TexCoord[0].st));
+
+ /// Extract luminance and scale up by night vision brightness
+ float lum = smoothstep(extractLow, extractHigh, dot(color, lumWeights));
+
+ gl_FragColor = vec4(vec3(lum), 1.0);
+}
diff --git a/indra/newview/app_settings/shaders/class2/effects/nightVisionF.glsl b/indra/newview/app_settings/shaders/class2/effects/nightVisionF.glsl
new file mode 100644
index 0000000000..271d5cf8d6
--- /dev/null
+++ b/indra/newview/app_settings/shaders/class2/effects/nightVisionF.glsl
@@ -0,0 +1,42 @@
+/**
+ * @file nightVisionF.glsl
+ *
+ * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
+ * $License$
+ */
+
+uniform sampler2DRect RenderTexture;
+uniform sampler2D NoiseTexture;
+uniform float brightMult;
+uniform float noiseStrength;
+
+float luminance(vec3 color)
+{
+ /// CALCULATING LUMINANCE (Using NTSC lum weights)
+ /// http://en.wikipedia.org/wiki/Luma_%28video%29
+ return dot(color, vec3(0.299, 0.587, 0.114));
+}
+
+void main(void)
+{
+ /// Get scene color
+ vec3 color = vec3(texture2DRect(RenderTexture, gl_TexCoord[0].st));
+
+ /// Extract luminance and scale up by night vision brightness
+ float lum = luminance(color) * brightMult;
+
+ /// Convert into night vision color space
+ /// Newer NVG colors (crisper and more saturated)
+ vec3 outColor = (lum * vec3(0.91, 1.21, 0.9)) + vec3(-0.07, 0.1, -0.12);
+
+ /// Add noise
+ float noiseValue = texture2D(NoiseTexture, gl_TexCoord[1].st).r;
+ noiseValue = (noiseValue - 0.5) * noiseStrength;
+
+ /// Older NVG colors (more muted)
+ // vec3 outColor = (lum * vec3(0.82, 0.75, 0.83)) + vec3(0.05, 0.32, -0.11);
+
+ outColor += noiseValue;
+
+ gl_FragColor = vec4(outColor, 1.0);
+}
diff --git a/indra/newview/app_settings/shaders/class2/effects/simpleF.glsl b/indra/newview/app_settings/shaders/class2/effects/simpleF.glsl
new file mode 100644
index 0000000000..e55d278b81
--- /dev/null
+++ b/indra/newview/app_settings/shaders/class2/effects/simpleF.glsl
@@ -0,0 +1,14 @@
+/**
+ * @file simpleF.glsl
+ *
+ * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
+ * $License$
+ */
+
+uniform sampler2DRect RenderTexture;
+
+void main(void)
+{
+ vec3 color = vec3(texture2DRect(RenderTexture, gl_TexCoord[0].st));
+ gl_FragColor = vec4(1.0 - color, 1.0);
+}