summaryrefslogtreecommitdiff
path: root/indra/newview/app_settings/shaders/class1/deferred/deferredUtil.glsl
diff options
context:
space:
mode:
authorErik Kundiman <erik@megapahit.org>2024-06-11 09:12:53 +0800
committerErik Kundiman <erik@megapahit.org>2024-06-11 09:12:53 +0800
commitdedd91fdcabe5af455bbbb1cb0149aea30b0faf9 (patch)
tree246d37024406883c917e0c54ce61306552b1671c /indra/newview/app_settings/shaders/class1/deferred/deferredUtil.glsl
parentb0e7f040658132d398fd2b29585ed5ae782c1fdd (diff)
parent730d94779c0e798ec91b269b530a08f0eebaa13d (diff)
Merge tag '7.1.8-release'
source for viewer 7.1.8.9375512768
Diffstat (limited to 'indra/newview/app_settings/shaders/class1/deferred/deferredUtil.glsl')
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/deferredUtil.glsl38
1 files changed, 5 insertions, 33 deletions
diff --git a/indra/newview/app_settings/shaders/class1/deferred/deferredUtil.glsl b/indra/newview/app_settings/shaders/class1/deferred/deferredUtil.glsl
index e1a1fda602..38fbda316b 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/deferredUtil.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/deferredUtil.glsl
@@ -50,6 +50,7 @@ SOFTWARE.
uniform sampler2D normalMap;
uniform sampler2D depthMap;
+uniform sampler2D emissiveRect;
uniform sampler2D projectionMap; // rgba
uniform sampler2D brdfLut;
@@ -140,40 +141,11 @@ vec2 getScreenCoordinate(vec2 screenpos)
return sc - vec2(1.0, 1.0);
}
-// See: https://aras-p.info/texts/CompactNormalStorage.html
-// Method #4: Spheremap Transform, Lambert Azimuthal Equal-Area projection
-vec3 getNorm(vec2 screenpos)
+vec4 getNorm(vec2 screenpos)
{
- vec2 enc = texture(normalMap, screenpos.xy).xy;
- vec2 fenc = enc*4.0-2.0;
- float f = dot(fenc,fenc);
- float g = sqrt(1.0-f/4.0);
- vec3 n;
- n.xy = fenc*g;
- n.z = 1.0-f/2.0;
- return n;
-}
-
-vec3 getNormalFromPacked(vec4 packedNormalEnvIntensityFlags)
-{
- vec2 enc = packedNormalEnvIntensityFlags.xy;
- vec2 fenc = enc*4.0-2.0;
- float f = dot(fenc,fenc);
- float g = sqrt(1.0-f/4.0);
- vec3 n;
- n.xy = fenc*g;
- n.z = 1.0-f/2.0;
- return normalize(n); // TODO: Is this normalize redundant?
-}
-
-// return packedNormalEnvIntensityFlags since GBUFFER_FLAG_HAS_PBR needs .w
-// See: C++: addDeferredAttachments(), GLSL: softenLightF
-vec4 getNormalEnvIntensityFlags(vec2 screenpos, out vec3 n, out float envIntensity)
-{
- vec4 packedNormalEnvIntensityFlags = texture(normalMap, screenpos.xy);
- n = getNormalFromPacked( packedNormalEnvIntensityFlags );
- envIntensity = packedNormalEnvIntensityFlags.z;
- return packedNormalEnvIntensityFlags;
+ vec4 norm = texture(normalMap, screenpos.xy);
+ norm.xyz = normalize(norm.xyz);
+ return norm;
}
// get linear depth value given a depth buffer sample d and znear and zfar values