summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorMichael Pohoreski (Ptolemy Linden) <ptolemy@lindenlab.com>2019-12-24 01:37:40 +0000
committerMichael Pohoreski (Ptolemy Linden) <ptolemy@lindenlab.com>2019-12-24 01:37:40 +0000
commit090803733455a09c9763d16106ad055c2532e61d (patch)
tree6027ad90899a1e05cc10af2bb64558a07446f446 /indra/newview
parent2eb8b9af5a14ffa4a27b2c7d4f5985c2d5d00d6c (diff)
Cleanup indentation and commented out debug color stage vectors
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/materialF.glsl253
1 files changed, 127 insertions, 126 deletions
diff --git a/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl b/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl
index 72e61095f2..f4e041eb5c 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl
@@ -47,142 +47,142 @@ vec3 linear_to_srgb(vec3 cs);
#if (DIFFUSE_ALPHA_MODE == DIFFUSE_ALPHA_MODE_BLEND)
- #ifdef DEFINE_GL_FRAGCOLOR
- out vec4 frag_color;
- #else
- #define frag_color gl_FragColor
- #endif
+#ifdef DEFINE_GL_FRAGCOLOR
+ out vec4 frag_color;
+#else
+ #define frag_color gl_FragColor
+#endif
- #ifdef HAS_SUN_SHADOW
+#ifdef HAS_SUN_SHADOW
float sampleDirectionalShadow(vec3 pos, vec3 norm, vec2 pos_screen);
- #endif
+#endif
- uniform samplerCube environmentMap;
- uniform sampler2D lightFunc;
+uniform samplerCube environmentMap;
+uniform sampler2D lightFunc;
- // Inputs
- uniform vec4 morphFactor;
- uniform vec3 camPosLocal;
- uniform mat3 env_mat;
+// Inputs
+uniform vec4 morphFactor;
+uniform vec3 camPosLocal;
+uniform mat3 env_mat;
- uniform vec3 sun_dir;
- uniform vec3 moon_dir;
- VARYING vec2 vary_fragcoord;
+uniform vec3 sun_dir;
+uniform vec3 moon_dir;
+VARYING vec2 vary_fragcoord;
- VARYING vec3 vary_position;
+VARYING vec3 vary_position;
- uniform mat4 proj_mat;
- uniform mat4 inv_proj;
- uniform vec2 screen_res;
+uniform mat4 proj_mat;
+uniform mat4 inv_proj;
+uniform vec2 screen_res;
- uniform vec4 light_position[8];
- uniform vec3 light_direction[8];
- uniform vec4 light_attenuation[8];
- uniform vec3 light_diffuse[8];
+uniform vec4 light_position[8];
+uniform vec3 light_direction[8];
+uniform vec4 light_attenuation[8];
+uniform vec3 light_diffuse[8];
- float getAmbientClamp();
+float getAmbientClamp();
- vec3 calcPointLightOrSpotLight(vec3 light_col, vec3 npos, vec3 diffuse, vec4 spec, vec3 v, vec3 n, vec4 lp, vec3 ln, float la, float fa, float is_pointlight, inout float glare, float ambiance)
- {
- vec3 col = vec3(0);
+vec3 calcPointLightOrSpotLight(vec3 light_col, vec3 npos, vec3 diffuse, vec4 spec, vec3 v, vec3 n, vec4 lp, vec3 ln, float la, float fa, float is_pointlight, inout float glare, float ambiance)
+{
+ vec3 col = vec3(0);
- //get light vector
- vec3 lv = lp.xyz-v;
+ //get light vector
+ vec3 lv = lp.xyz-v;
- //get distance
- float dist = length(lv);
- float da = 1.0;
+ //get distance
+ float dist = length(lv);
+ float da = 1.0;
- dist /= la;
+ dist /= la;
- /* clip to projector bounds
- vec4 proj_tc = proj_mat * lp;
+ /* clip to projector bounds
+ vec4 proj_tc = proj_mat * lp;
- if (proj_tc.z < 0
- || proj_tc.z > 1
- || proj_tc.x < 0
- || proj_tc.x > 1
- || proj_tc.y < 0
- || proj_tc.y > 1)
- {
- return col;
- }*/
+ if (proj_tc.z < 0
+ || proj_tc.z > 1
+ || proj_tc.x < 0
+ || proj_tc.x > 1
+ || proj_tc.y < 0
+ || proj_tc.y > 1)
+ {
+ return col;
+ }*/
- if (dist > 0.0 && la > 0.0)
+ if (dist > 0.0 && la > 0.0)
+ {
+ //normalize light vector
+ lv = normalize(lv);
+
+ //distance attenuation
+ float dist_atten = clamp(1.0-(dist-1.0*(1.0-fa))/fa, 0.0, 1.0);
+ dist_atten *= dist_atten;
+ dist_atten *= 2.0f;
+
+ if (dist_atten <= 0.0)
{
- //normalize light vector
- lv = normalize(lv);
-
- //distance attenuation
- float dist_atten = clamp(1.0-(dist-1.0*(1.0-fa))/fa, 0.0, 1.0);
- dist_atten *= dist_atten;
- dist_atten *= 2.0f;
-
- if (dist_atten <= 0.0)
- {
- return col;
- }
+ return col;
+ }
- // spotlight coefficient.
- float spot = max(dot(-ln, lv), is_pointlight);
- da *= spot*spot; // GL_SPOT_EXPONENT=2
+ // spotlight coefficient.
+ float spot = max(dot(-ln, lv), is_pointlight);
+ da *= spot*spot; // GL_SPOT_EXPONENT=2
- //angular attenuation
- da *= dot(n, lv);
+ //angular attenuation
+ da *= dot(n, lv);
- float lit = 0.0f;
+ float lit = 0.0f;
- float amb_da = ambiance;
- if (da >= 0)
- {
- lit = max(da * dist_atten,0.0);
- col = lit * light_col * diffuse;
- amb_da += (da*0.5+0.5) * ambiance;
- }
- amb_da += (da*da*0.5 + 0.5) * ambiance;
- amb_da *= dist_atten;
- amb_da = min(amb_da, 1.0f - lit);
+ float amb_da = ambiance;
+ if (da >= 0)
+ {
+ lit = max(da * dist_atten,0.0);
+ col = lit * light_col * diffuse;
+ amb_da += (da*0.5+0.5) * ambiance;
+ }
+ amb_da += (da*da*0.5 + 0.5) * ambiance;
+ amb_da *= dist_atten;
+ amb_da = min(amb_da, 1.0f - lit);
+
+ // SL-10969 need to see why these are blown out
+ //col.rgb += amb_da * light_col * diffuse;
- // SL-10969 need to see why these are blown out
- //col.rgb += amb_da * light_col * diffuse;
+ if (spec.a > 0.0)
+ {
+ //vec3 ref = dot(pos+lv, norm);
+ vec3 h = normalize(lv+npos);
+ float nh = dot(n, h);
+ float nv = dot(n, npos);
+ float vh = dot(npos, h);
+ float sa = nh;
+ float fres = pow(1 - dot(h, npos), 5)*0.4+0.5;
- if (spec.a > 0.0)
+ float gtdenom = 2 * nh;
+ float gt = max(0, min(gtdenom * nv / vh, gtdenom * da / vh));
+
+ if (nh > 0.0)
{
- //vec3 ref = dot(pos+lv, norm);
- vec3 h = normalize(lv+npos);
- float nh = dot(n, h);
- float nv = dot(n, npos);
- float vh = dot(npos, h);
- float sa = nh;
- float fres = pow(1 - dot(h, npos), 5)*0.4+0.5;
-
- float gtdenom = 2 * nh;
- float gt = max(0, min(gtdenom * nv / vh, gtdenom * da / vh));
-
- if (nh > 0.0)
- {
- float scol = fres*texture2D(lightFunc, vec2(nh, spec.a)).r*gt/(nh*da);
- vec3 speccol = lit*scol*light_col.rgb*spec.rgb;
- speccol = clamp(speccol, vec3(0), vec3(1));
- col += speccol;
-
- float cur_glare = max(speccol.r, speccol.g);
- cur_glare = max(cur_glare, speccol.b);
- glare = max(glare, speccol.r);
- glare += max(cur_glare, 0.0);
- }
+ float scol = fres*texture2D(lightFunc, vec2(nh, spec.a)).r*gt/(nh*da);
+ vec3 speccol = lit*scol*light_col.rgb*spec.rgb;
+ speccol = clamp(speccol, vec3(0), vec3(1));
+ col += speccol;
+
+ float cur_glare = max(speccol.r, speccol.g);
+ cur_glare = max(cur_glare, speccol.b);
+ glare = max(glare, speccol.r);
+ glare += max(cur_glare, 0.0);
}
}
-
- return max(col, vec3(0.0,0.0,0.0));
}
- #else
- #ifdef DEFINE_GL_FRAGCOLOR
- out vec4 frag_data[3];
- #else
- #define frag_data gl_FragData
- #endif
+ return max(col, vec3(0.0,0.0,0.0));
+}
+
+#else
+#ifdef DEFINE_GL_FRAGCOLOR
+out vec4 frag_data[3];
+#else
+#define frag_data gl_FragData
+#endif
#endif
uniform sampler2D diffuseMap;
@@ -358,23 +358,25 @@ void main()
vec3 sun_contrib = min(final_da, shadow) * sunlit;
+// vec3 debug_sun_contrib = sun_contrib;
+
#if !defined(AMBIENT_KILL)
color.rgb = amblit;
color.rgb *= ambient;
#endif
-vec3 post_ambient = color.rgb;
+//vec3 debug_post_ambient = color.rgb;
#if !defined(SUNLIGHT_KILL)
color.rgb += sun_contrib;
#endif
-vec3 post_sunlight = color.rgb;
+//vec3 debug_post_sunlight = color.rgb;
//color.rgb *= diffuse_srgb.rgb;
color.rgb *= diffuse_linear.rgb; // SL-12006
-vec3 post_diffuse = color.rgb;
+//vec3 debug_post_diffuse = color.rgb;
float glare = 0.0;
@@ -399,13 +401,13 @@ vec3 post_diffuse = color.rgb;
vec3 sp = sun_contrib*scol / 16.0f;
sp = clamp(sp, vec3(0), vec3(1));
bloom = dot(sp, sp) / 6.0;
- #if !defined(SUNLIGHT_KILL)
+#if !defined(SUNLIGHT_KILL)
color += sp * spec.rgb;
- #endif
+#endif
}
}
- vec3 post_spec = color.rgb;
+//vec3 debug_post_spec = color.rgb;
if (envIntensity > 0.0)
{
@@ -414,23 +416,23 @@ vec3 post_diffuse = color.rgb;
vec3 reflected_color = textureCube(environmentMap, env_vec).rgb;
- #if !defined(SUNLIGHT_KILL)
+#if !defined(SUNLIGHT_KILL)
color = mix(color.rgb, reflected_color, envIntensity);
- #endif
+#endif
float cur_glare = max(reflected_color.r, reflected_color.g);
cur_glare = max(cur_glare, reflected_color.b);
cur_glare *= envIntensity*4.0;
glare += cur_glare;
}
-vec3 post_env = color.rgb;
+//vec3 debug_post_env = color.rgb;
color = atmosFragLighting(color, additive, atten);
//convert to linear space before adding local lights
color = srgb_to_linear(color);
-vec3 post_atmo = color.rgb;
+//vec3 debug_post_atmo = color.rgb;
vec3 npos = normalize(-pos.xyz);
@@ -461,15 +463,15 @@ vec3 post_atmo = color.rgb;
//color.rgb = amblit;
//color.rgb = vec3(ambient);
//color.rgb = sunlit;
-//color.rgb = post_ambient;
+//color.rgb = debug_post_ambient;
//color.rgb = vec3(final_da);
-//color.rgb = sun_contrib;
-//color.rgb = post_sunlight;
+//color.rgb = debug_sun_contrib;
+//color.rgb = debug_post_sunlight;
//color.rgb = diffuse_srgb.rgb;
-//color.rgb = post_diffuse;
-//color.rgb = post_spec;
-//color.rgb = post_env;
-//color.rgb = post_atmo;
+//color.rgb = debug_post_diffuse;
+//color.rgb = debug_post_spec;
+//color.rgb = debug_post_env;
+//color.rgb = debug_post_atmo;
#ifdef WATER_FOG
vec4 temp = applyWaterFogView(pos, vec4(color.rgb, al));
@@ -490,4 +492,3 @@ vec3 post_atmo = color.rgb;
#endif
}
-