diff options
| author | Erik Kundiman <erik@megapahit.org> | 2025-09-09 12:51:38 +0800 | 
|---|---|---|
| committer | Erik Kundiman <erik@megapahit.org> | 2025-09-09 12:51:38 +0800 | 
| commit | 8a9a3dc9d760db37bb963d3e5bfadafdd94ee08d (patch) | |
| tree | 22f2533527d63df3736c638c4b9c7a8059ecb4ec /indra/newview/app_settings/shaders/class1/deferred | |
| parent | 50fb526c1011d0dd623e312ff70365e32a6d50a7 (diff) | |
| parent | 12743eca6958b897d7eb3f0cf791ad8ada3fc790 (diff) | |
Merge branch 'main' into 2025.06
Diffstat (limited to 'indra/newview/app_settings/shaders/class1/deferred')
11 files changed, 78 insertions, 20 deletions
diff --git a/indra/newview/app_settings/shaders/class1/deferred/MPHDRDisplayGammaF.glsl b/indra/newview/app_settings/shaders/class1/deferred/MPHDRDisplayGammaF.glsl new file mode 100644 index 0000000000..7107cfcbce --- /dev/null +++ b/indra/newview/app_settings/shaders/class1/deferred/MPHDRDisplayGammaF.glsl @@ -0,0 +1,55 @@ +/** + * @file postDeferredGammaCorrect.glsl + * + * $LicenseInfo:firstyear=2007&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2007, Linden Research, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA + * + * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA + * $/LicenseInfo$ + */ + +/*[EXTRA_CODE_HERE]*/ + +out vec4 frag_color; + +uniform sampler2D diffuseRect; + +uniform float gamma = 2.2; +uniform float mpHDRBoost; + +in vec2 vary_fragcoord; + +vec3 clampHDRRange(vec3 color); + +vec3 HDRDisplayGamma(vec3 linearRGB) +{ +    bvec3 cutoff = lessThan(linearRGB, vec3(0.0031308)); +    vec3 higher = vec3(1.055)*pow(linearRGB, vec3(1.0/gamma)) - vec3(0.055); +    vec3 lower = linearRGB * vec3(12.92); + +    return mix(higher, lower, cutoff); +} + +void main() +{ +    vec4 diff = texture(diffuseRect, vary_fragcoord); +    diff.rgb = mpHDRBoost * HDRDisplayGamma(diff.rgb); +    diff.rgb = clampHDRRange(diff.rgb); +    frag_color = diff; +} + diff --git a/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaMaskShadowF.glsl b/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaMaskShadowF.glsl index f1e0295859..084a334346 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaMaskShadowF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaMaskShadowF.glsl @@ -23,7 +23,7 @@   * $/LicenseInfo$   */ -out vec4 frag_color; +//out vec4 frag_color;  uniform float minimum_alpha;  uniform sampler2D diffuseMap; @@ -49,5 +49,5 @@ void main()        }      } -    frag_color = vec4(1,1,1,1); +    //frag_color = vec4(1,1,1,1);  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaShadowF.glsl b/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaShadowF.glsl index 18ce998cb6..5986e8e462 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaShadowF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaShadowF.glsl @@ -23,7 +23,7 @@   * $/LicenseInfo$   */ -out vec4 frag_color; +//out vec4 frag_color;  uniform float minimum_alpha; @@ -51,5 +51,5 @@ void main()        }      } -    frag_color = vec4(1,1,1,1); +    //frag_color = vec4(1,1,1,1);  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/avatarShadowF.glsl b/indra/newview/app_settings/shaders/class1/deferred/avatarShadowF.glsl index 37dcbbd328..4396ae89a4 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/avatarShadowF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/avatarShadowF.glsl @@ -25,10 +25,10 @@  /*[EXTRA_CODE_HERE]*/ -out vec4 frag_color; +//out vec4 frag_color;  void main()  { -    frag_color = vec4(1,1,1,1); +    //frag_color = vec4(1,1,1,1);  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/pbrShadowAlphaBlendF.glsl b/indra/newview/app_settings/shaders/class1/deferred/pbrShadowAlphaBlendF.glsl index dbaab9bbda..90d81ab6b2 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/pbrShadowAlphaBlendF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/pbrShadowAlphaBlendF.glsl @@ -23,7 +23,7 @@   * $/LicenseInfo$   */ -out vec4 frag_color; +//out vec4 frag_color;  uniform sampler2D diffuseMap; @@ -52,5 +52,5 @@ void main()          }      } -    frag_color = vec4(1,1,1,1); +    //frag_color = vec4(1,1,1,1);  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/pbrShadowAlphaMaskF.glsl b/indra/newview/app_settings/shaders/class1/deferred/pbrShadowAlphaMaskF.glsl index 07a2218db2..2b314db51a 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/pbrShadowAlphaMaskF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/pbrShadowAlphaMaskF.glsl @@ -23,7 +23,7 @@   * $/LicenseInfo$   */ -out vec4 frag_color; +//out vec4 frag_color;  uniform sampler2D diffuseMap; @@ -42,5 +42,5 @@ void main()          discard;      } -    frag_color = vec4(1,1,1,1); +    //frag_color = vec4(1,1,1,1);  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/postDeferredGammaCorrect.glsl b/indra/newview/app_settings/shaders/class1/deferred/postDeferredGammaCorrect.glsl index 4ccc6f54a8..197ce48a45 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/postDeferredGammaCorrect.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/postDeferredGammaCorrect.glsl @@ -30,7 +30,7 @@ out vec4 frag_color;  uniform sampler2D diffuseRect;  uniform float gamma; -uniform vec2 screen_res; +//uniform vec2 screen_res;  in vec2 vary_fragcoord;  vec3 linear_to_srgb(vec3 cl); diff --git a/indra/newview/app_settings/shaders/class1/deferred/shadowAlphaMaskF.glsl b/indra/newview/app_settings/shaders/class1/deferred/shadowAlphaMaskF.glsl index f208ac746b..a37e970feb 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/shadowAlphaMaskF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/shadowAlphaMaskF.glsl @@ -25,7 +25,7 @@  /*[EXTRA_CODE_HERE]*/ -out vec4 frag_color; +//out vec4 frag_color;  in vec4 post_pos;  in float target_pos_x; @@ -59,5 +59,5 @@ void main()          }      } -    frag_color = vec4(1,1,1,1); +    //frag_color = vec4(1,1,1,1);  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/shadowF.glsl b/indra/newview/app_settings/shaders/class1/deferred/shadowF.glsl index b55d769fd6..c4e4c4d051 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/shadowF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/shadowF.glsl @@ -23,9 +23,9 @@   * $/LicenseInfo$   */ -out vec4 frag_color; +//out vec4 frag_color;  void main()  { -    frag_color = vec4(1,1,1,1); +    //frag_color = vec4(1,1,1,1);  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/shadowUtil.glsl b/indra/newview/app_settings/shaders/class1/deferred/shadowUtil.glsl index 6f7bd2bf3c..033c2f924a 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/shadowUtil.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/shadowUtil.glsl @@ -113,8 +113,8 @@ float sampleDirectionalShadow(vec3 pos, vec3 norm, vec2 pos_screen)      if (spos.z > -shadow_clip.w)      {          vec4 lpos; -        vec4 near_split = shadow_clip*-0.75; -        vec4 far_split = shadow_clip*-1.25; +        vec4 near_split = shadow_clip*-0.9; +        vec4 far_split = shadow_clip*-1.1;          vec4 transition_domain = near_split-far_split;          float weight = 0.0; @@ -131,7 +131,10 @@ float sampleDirectionalShadow(vec3 pos, vec3 norm, vec2 pos_screen)                  shadow += contrib;                  weight += w;              } -            shadow += max((pos.z+shadow_clip.z)/(shadow_clip.z-shadow_clip.w)*2.0-1.0, 0.0); + +            //shadow += max( (pos.z+shadow_clip.z) / (shadow_clip.z-shadow_clip.w) * 2.0 - 1.0, 0.0); +            shadow += max( (pos.z+shadow_clip.z) / (shadow_clip.z-shadow_clip.w) * 1.0, 0.0); +            //shadow -= max(  (shadow_clip.z + pos.z) / (shadow_clip.z - shadow_clip.w) , 0.0);          }          if (spos.z < near_split.y && spos.z > far_split.z) diff --git a/indra/newview/app_settings/shaders/class1/deferred/treeShadowF.glsl b/indra/newview/app_settings/shaders/class1/deferred/treeShadowF.glsl index 33a5efa45d..4579d4fbe0 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/treeShadowF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/treeShadowF.glsl @@ -26,7 +26,7 @@  /*[EXTRA_CODE_HERE]*/ -out vec4 frag_color; +//out vec4 frag_color;  uniform float minimum_alpha; @@ -43,5 +43,5 @@ void main()          discard;      } -    frag_color = vec4(1,1,1,1); +    //frag_color = vec4(1,1,1,1);  }  | 
