diff options
| author | Dave Parks <davep@lindenlab.com> | 2023-02-21 22:13:08 -0600 | 
|---|---|---|
| committer | Dave Parks <davep@lindenlab.com> | 2023-02-21 22:13:08 -0600 | 
| commit | 0336c1a06de89937d5c0f971e06270afc868ddfa (patch) | |
| tree | 5c2675c162511589e95d28cf94ebf3124c3303e9 /indra/newview/app_settings/shaders | |
| parent | 8f83724f7eb6f05150951fabac2a89f4b83abe39 (diff) | |
DRTVWR-559 Fix SSR on transparent PBR surfaces.
Diffstat (limited to 'indra/newview/app_settings/shaders')
| -rw-r--r-- | indra/newview/app_settings/shaders/class1/deferred/pbralphaV.glsl | 5 | ||||
| -rw-r--r-- | indra/newview/app_settings/shaders/class2/deferred/pbralphaF.glsl | 8 | 
2 files changed, 6 insertions, 7 deletions
| diff --git a/indra/newview/app_settings/shaders/class1/deferred/pbralphaV.glsl b/indra/newview/app_settings/shaders/class1/deferred/pbralphaV.glsl index da27be6e7f..b7715fbe6e 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/pbralphaV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/pbralphaV.glsl @@ -49,10 +49,9 @@ uniform mat3 texture_normal_matrix;  uniform mat3 texture_metallic_roughness_matrix;  uniform mat3 texture_emissive_matrix; -#ifdef HAS_SUN_SHADOW  out vec3 vary_fragcoord; +  uniform float near_clip; -#endif  in vec3 position;  in vec4 diffuse_color; @@ -86,9 +85,7 @@ void main()  #endif      gl_Position = vert; -#ifdef HAS_SUN_SHADOW      vary_fragcoord.xyz = vert.xyz + vec3(0,0,near_clip); -#endif  	basecolor_texcoord = (texture_matrix0 * vec4(texture_basecolor_matrix * vec3(texcoord0,1), 1)).xy;  	normal_texcoord = (texture_matrix0 * vec4(texture_normal_matrix * vec3(texcoord0,1), 1)).xy; diff --git a/indra/newview/app_settings/shaders/class2/deferred/pbralphaF.glsl b/indra/newview/app_settings/shaders/class2/deferred/pbralphaF.glsl index 35ccc65a8e..a95feb8e2f 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/pbralphaF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/pbralphaF.glsl @@ -46,8 +46,9 @@ uniform vec3 moon_dir;  out vec4 frag_color; +in vec3 vary_fragcoord; +  #ifdef HAS_SUN_SHADOW -  in vec3 vary_fragcoord;    uniform vec2 screen_res;  #endif @@ -191,8 +192,9 @@ void main()      vec3 atten;      calcAtmosphericVarsLinear(pos.xyz, norm, light_dir, sunlit, amblit, additive, atten); -#ifdef HAS_SUN_SHADOW      vec2 frag = vary_fragcoord.xy/vary_fragcoord.z*0.5+0.5; + +#ifdef HAS_SUN_SHADOW      scol = sampleDirectionalShadow(pos.xyz, norm.xyz, frag);  #endif @@ -211,7 +213,7 @@ void main()      float gloss      = 1.0 - perceptualRoughness;      vec3  irradiance = vec3(0);      vec3  radiance  = vec3(0); -    sampleReflectionProbes(irradiance, radiance, vec2(0), pos.xyz, norm.xyz, gloss); +    sampleReflectionProbes(irradiance, radiance, vary_position.xy*0.5+0.5, pos.xyz, norm.xyz, gloss);      // Take maximium of legacy ambient vs irradiance sample as irradiance      // NOTE: ao is applied in pbrIbl (see pbrBaseLight), do not apply here      irradiance       = max(amblit,irradiance); | 
