From a6fa155725205d1e6207abfe1112f92bbe38203d Mon Sep 17 00:00:00 2001
From: Dave Parks <davep@lindenlab.com>
Date: Wed, 25 May 2011 19:23:57 -0500
Subject: [PATCH] Make avatars use same shadow offset magic as prims.

---
 .../shaders/class1/deferred/avatarShadowF.glsl             | 3 +++
 .../shaders/class1/deferred/avatarShadowV.glsl             | 7 +++++--
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/indra/newview/app_settings/shaders/class1/deferred/avatarShadowF.glsl b/indra/newview/app_settings/shaders/class1/deferred/avatarShadowF.glsl
index 1b7ae068884..3d0884bbe89 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/avatarShadowF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/avatarShadowF.glsl
@@ -9,10 +9,13 @@
 
 uniform sampler2D diffuseMap;
 
+varying vec4 post_pos;
 
 void main() 
 {
 	//gl_FragColor = vec4(1,1,1,gl_Color.a * texture2D(diffuseMap, gl_TexCoord[0].xy).a);
 	gl_FragColor = vec4(1,1,1,1);
+
+	gl_FragDepth = max(post_pos.z/post_pos.w*0.5+0.5, 0.0);
 }
 
diff --git a/indra/newview/app_settings/shaders/class1/deferred/avatarShadowV.glsl b/indra/newview/app_settings/shaders/class1/deferred/avatarShadowV.glsl
index cf6579a40d4..3460f406579 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/avatarShadowV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/avatarShadowV.glsl
@@ -11,6 +11,8 @@ mat4 getSkinnedTransform();
 
 attribute vec4 weight;
 
+varying vec4 post_pos;
+
 void main()
 {
 	gl_TexCoord[0] = gl_MultiTexCoord0;
@@ -30,8 +32,9 @@ void main()
 	norm = normalize(norm);
 	
 	pos = gl_ProjectionMatrix * pos;
-	pos.z = max(pos.z, -pos.w+0.01);
-	gl_Position = pos;
+	post_pos = pos;
+
+	gl_Position = vec4(pos.x, pos.y, pos.w*0.5, pos.w);
 	
 	gl_FrontColor = gl_Color;
 }
-- 
GitLab