summaryrefslogtreecommitdiff
path: root/indra/newview/app_settings
diff options
context:
space:
mode:
authorRye <rye@lindenlab.com>2024-11-03 02:28:39 -0500
committerRye <rye@lindenlab.com>2024-11-04 01:30:20 -0800
commit687930d5094e85c13d5ae7967b09eb08a879b333 (patch)
treea4ce0040ecde0c8aef71f1ba6f107c5703dc1d6d /indra/newview/app_settings
parenta57d82b3a9337eb4ac00340e80749ac97392e03e (diff)
Integrate glow combine pass with other post process render passes to reduce another full screen copy
Diffstat (limited to 'indra/newview/app_settings')
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/SMAANeighborhoodBlendF.glsl10
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/cofF.glsl6
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/postDeferredNoDoFF.glsl1
-rw-r--r--indra/newview/app_settings/shaders/class1/interface/glowcombineF.glsl2
-rw-r--r--indra/newview/app_settings/shaders/class1/interface/glowcombineFXAAF.glsl7
5 files changed, 20 insertions, 6 deletions
diff --git a/indra/newview/app_settings/shaders/class1/deferred/SMAANeighborhoodBlendF.glsl b/indra/newview/app_settings/shaders/class1/deferred/SMAANeighborhoodBlendF.glsl
index 3276405447..08052a9ddf 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/SMAANeighborhoodBlendF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/SMAANeighborhoodBlendF.glsl
@@ -31,10 +31,12 @@ in vec2 vary_texcoord0;
in vec4 vary_offset;
uniform sampler2D diffuseRect;
+uniform sampler2D emissiveRect;
uniform sampler2D blendTex;
#if SMAA_REPROJECTION
uniform sampler2D velocityTex;
#endif
+uniform sampler2D depthMap;
#define float4 vec4
#define float2 vec2
@@ -51,7 +53,7 @@ float4 SMAANeighborhoodBlendingPS(float2 texcoord,
void main()
{
- frag_color = SMAANeighborhoodBlendingPS(vary_texcoord0,
+ vec4 diff = SMAANeighborhoodBlendingPS(vary_texcoord0,
vary_offset,
diffuseRect,
blendTex
@@ -59,5 +61,11 @@ void main()
, velocityTex
#endif
);
+#ifndef NO_GLOW
+ diff.rgb += texture2D(emissiveRect, vary_texcoord0).rgb;
+#endif
+ frag_color = diff;
+
+ gl_FragDepth = texture(depthMap, vary_texcoord0.xy).r;
}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/cofF.glsl b/indra/newview/app_settings/shaders/class1/deferred/cofF.glsl
index 4a26b8924a..36611db2fb 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/cofF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/cofF.glsl
@@ -29,6 +29,7 @@ out vec4 frag_color;
uniform sampler2D diffuseRect;
uniform sampler2D depthMap;
+uniform sampler2D emissiveRect;
uniform float focal_distance;
uniform float blur_constant;
@@ -66,12 +67,13 @@ void main()
vec4 p = inv_proj*ndc;
float depth = p.z/p.w;
- vec4 diff = texture(diffuseRect, vary_fragcoord.xy);
+ vec4 diff = texture(diffuseRect, tc);
float sc = calc_cof(depth);
sc = min(sc, max_cof);
sc = max(sc, -max_cof);
- frag_color.rgb = diff.rgb;
+ vec4 bloom = texture2D(emissiveRect, tc);
+ frag_color.rgb = diff.rgb + bloom.rgb;
frag_color.a = sc/max_cof*0.5+0.5;
}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/postDeferredNoDoFF.glsl b/indra/newview/app_settings/shaders/class1/deferred/postDeferredNoDoFF.glsl
index 07384ebe9b..cb0a6edea9 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/postDeferredNoDoFF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/postDeferredNoDoFF.glsl
@@ -30,7 +30,6 @@ out vec4 frag_color;
uniform sampler2D diffuseRect;
uniform sampler2D depthMap;
-uniform vec2 screen_res;
in vec2 vary_fragcoord;
void main()
diff --git a/indra/newview/app_settings/shaders/class1/interface/glowcombineF.glsl b/indra/newview/app_settings/shaders/class1/interface/glowcombineF.glsl
index ca000dcb23..0e7858743c 100644
--- a/indra/newview/app_settings/shaders/class1/interface/glowcombineF.glsl
+++ b/indra/newview/app_settings/shaders/class1/interface/glowcombineF.glsl
@@ -29,10 +29,12 @@ out vec4 frag_color;
uniform sampler2D diffuseRect;
uniform sampler2D emissiveRect;
+uniform sampler2D depthMap;
in vec2 tc;
void main()
{
frag_color = texture(diffuseRect, tc) + texture(emissiveRect, tc);
+ gl_FragDepth = texture(depthMap, tc.xy).r;
}
diff --git a/indra/newview/app_settings/shaders/class1/interface/glowcombineFXAAF.glsl b/indra/newview/app_settings/shaders/class1/interface/glowcombineFXAAF.glsl
index 6d34c8aefa..8a8de88182 100644
--- a/indra/newview/app_settings/shaders/class1/interface/glowcombineFXAAF.glsl
+++ b/indra/newview/app_settings/shaders/class1/interface/glowcombineFXAAF.glsl
@@ -28,6 +28,7 @@
out vec4 frag_color;
uniform sampler2D diffuseRect;
+uniform sampler2D emissiveRect;
uniform vec2 screen_res;
@@ -36,6 +37,8 @@ in vec2 vary_tc;
void main()
{
vec3 col = texture(diffuseRect, vary_tc).rgb;
-
- frag_color = vec4(col.rgb, dot(col.rgb, vec3(0.299, 0.587, 0.144)));
+#ifndef NO_GLOW
+ col += texture2D(emissiveRect, vary_tc).rgb;
+#endif
+ frag_color = vec4(col, dot(col, vec3(0.299, 0.587, 0.144)));
}