diff options
Diffstat (limited to 'indra/newview/app_settings')
5 files changed, 63 insertions, 58 deletions
| diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 304932dd1a..5217e88a59 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -10391,7 +10391,7 @@      <key>Type</key>      <string>U32</string>      <key>Value</key> -    <integer>256</integer> +    <integer>128</integer>    </map>    <key>RenderReflectionProbeAmbianceScale</key>    <map> diff --git a/indra/newview/app_settings/shaders/class1/interface/gaussianF.glsl b/indra/newview/app_settings/shaders/class1/interface/gaussianF.glsl new file mode 100644 index 0000000000..8e341503f5 --- /dev/null +++ b/indra/newview/app_settings/shaders/class1/interface/gaussianF.glsl @@ -0,0 +1,53 @@ +/**  + * @file gaussianF.glsl + * + * $LicenseInfo:firstyear=2023&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2023, 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$ + */ + +out vec4 frag_color; + +uniform sampler2D diffuseRect; + +uniform float resScale; + +// texture direction, will be <1, 0> or <0, 1> +uniform vec2 direction; + +in vec2 vary_texcoord0; + +// get linear depth value given a depth buffer sample d and znear and zfar values +float linearDepth(float d, float znear, float zfar); + +void main()  +{ +    vec3 col = vec3(0,0,0); + +    float w[] = { 0.0002, 0.0060, 0.0606, 0.2417, 0.3829, 0.2417, 0.0606, 0.0060, 0.0002 }; +     +    for (int i = 0; i < 9; ++i) +    { +        vec2 tc = vary_texcoord0 + (i-4)*direction*resScale; +        col += texture(diffuseRect, tc).rgb * w[i]; +    } + +    frag_color = vec4(col, 0.0); +} diff --git a/indra/newview/app_settings/shaders/class1/interface/reflectionmipF.glsl b/indra/newview/app_settings/shaders/class1/interface/reflectionmipF.glsl index a9c28b2974..9f7706fe36 100644 --- a/indra/newview/app_settings/shaders/class1/interface/reflectionmipF.glsl +++ b/indra/newview/app_settings/shaders/class1/interface/reflectionmipF.glsl @@ -23,18 +23,8 @@   * $/LicenseInfo$   */ -#extension GL_ARB_texture_rectangle : enable - -/*[EXTRA_CODE_HERE]*/ - -#ifdef DEFINE_GL_FRAGCOLOR  out vec4 frag_color; -#else -#define frag_color gl_FragColor -#endif -// NOTE screenMap should always be texture channel 0 and  -// depthmap should always be channel 1  uniform sampler2D diffuseRect;  uniform sampler2D depthMap; @@ -42,48 +32,13 @@ uniform float resScale;  uniform float znear;  uniform float zfar; -VARYING vec2 vary_texcoord0; +in vec2 vary_texcoord0;  // get linear depth value given a depth buffer sample d and znear and zfar values  float linearDepth(float d, float znear, float zfar);  void main()   { -#if 0 -    float w[9]; - -    float c = 1.0/16.0;  //corner weight -    float e = 1.0/8.0; //edge weight -    float m = 1.0/4.0; //middle weight - -    //float wsum = c*4+e*4+m; - -    w[0] = c;   w[1] = e;    w[2] = c; -    w[3] = e;    w[4] = m;     w[5] = e; -    w[6] = c;   w[7] = e;    w[8] = c; -     -    vec2 tc[9]; - -    float ed = 1; -    float cd = 1; - - -    tc[0] = vec2(-cd, cd);    tc[1] = vec2(0, ed);    tc[2] = vec2(cd, cd); -    tc[3] = vec2(-ed, 0);    tc[4] = vec2(0, 0);    tc[5] = vec2(ed, 0); -    tc[6] = vec2(-cd, -cd);    tc[7] = vec2(0, -ed);   tc[8] = vec2(cd, -1); - -    vec3 color = vec3(0,0,0); - -    for (int i = 0; i < 9; ++i) -    { -        color += texture2D(screenMap, vary_texcoord0.xy+tc[i]).rgb * w[i]; -        //color += texture2D(screenMap, vary_texcoord0.xy+tc[i]*2.0).rgb * w[i]*0.5; -    } - -    //color /= wsum; - -    frag_color = vec4(color, 1.0); -#else      float depth = texture(depthMap, vary_texcoord0.xy).r;      float dist = linearDepth(depth, znear, zfar); @@ -94,7 +49,6 @@ void main()      v = normalize(v);      dist /= v.z; -    vec3 col = texture2D(diffuseRect, vary_texcoord0.xy).rgb; -    frag_color = vec4(col, dist/256.0);  -#endif +    vec3 col = texture(diffuseRect, vary_texcoord0.xy).rgb; +    frag_color = vec4(col, dist/256.0);  } diff --git a/indra/newview/app_settings/shaders/class1/interface/splattexturerectV.glsl b/indra/newview/app_settings/shaders/class1/interface/splattexturerectV.glsl index 641d670c26..edc0a9628b 100644 --- a/indra/newview/app_settings/shaders/class1/interface/splattexturerectV.glsl +++ b/indra/newview/app_settings/shaders/class1/interface/splattexturerectV.glsl @@ -25,17 +25,16 @@  uniform mat4 modelview_projection_matrix; -ATTRIBUTE vec3 position; -ATTRIBUTE vec2 texcoord0; -ATTRIBUTE vec4 diffuse_color; +in vec3 position; +in vec4 diffuse_color; -VARYING vec4 vertex_color; -VARYING vec2 vary_texcoord0; +out vec4 vertex_color; +out vec2 vary_texcoord0;  void main()  {  	gl_Position = modelview_projection_matrix * vec4(position.xyz, 1.0); -	vary_texcoord0 = texcoord0; +	vary_texcoord0 = position.xy*0.5+0.5;  	vertex_color = diffuse_color;  } diff --git a/indra/newview/app_settings/shaders/class2/interface/irradianceGenF.glsl b/indra/newview/app_settings/shaders/class2/interface/irradianceGenF.glsl index c7da23fb00..baf68e11f4 100644 --- a/indra/newview/app_settings/shaders/class2/interface/irradianceGenF.glsl +++ b/indra/newview/app_settings/shaders/class2/interface/irradianceGenF.glsl @@ -176,7 +176,6 @@ float computeLod(float pdf)  vec4 filterColor(vec3 N)  { -    //return  textureLod(uCubeMap, N, 3.0).rgb;      vec4 color = vec4(0.f);      for(int i = 0; i < u_sampleCount; ++i) @@ -192,7 +191,7 @@ vec4 filterColor(vec3 N)          // apply the bias to the lod          lod += u_lodBias; -        lod = clamp(lod, 0, 7); +        lod = clamp(lod, 0, max_probe_lod);          // sample lambertian at a lower resolution to avoid fireflies          vec4 lambertian = textureLod(reflectionProbes, vec4(H, sourceIdx), lod); | 
