diff options
| author | Michael Pohoreski (Ptolemy Linden) <ptolemy@lindenlab.com> | 2019-12-24 00:01:25 +0000 | 
|---|---|---|
| committer | Michael Pohoreski (Ptolemy Linden) <ptolemy@lindenlab.com> | 2019-12-24 00:01:25 +0000 | 
| commit | 2eb8b9af5a14ffa4a27b2c7d4f5985c2d5d00d6c (patch) | |
| tree | 6d9e59e2844392d05b8f73c0b6de019dd3fb15e6 /indra/newview/app_settings | |
| parent | a6f7de660f942419bc0ec4632b87b77157cd058b (diff) | |
De-tabify
Diffstat (limited to 'indra/newview/app_settings')
| -rw-r--r-- | indra/newview/app_settings/shaders/class1/deferred/materialF.glsl | 472 | 
1 files changed, 236 insertions, 236 deletions
| diff --git a/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl b/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl index c072d44e63..72e61095f2 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 HAS_SUN_SHADOW -	float sampleDirectionalShadow(vec3 pos, vec3 norm, vec2 pos_screen); -	#endif - -	uniform samplerCube environmentMap; -	uniform sampler2D     lightFunc; - -	// Inputs -	uniform vec4 morphFactor; -	uniform vec3 camPosLocal; -	uniform mat3 env_mat; - -	uniform vec3 sun_dir; -	uniform vec3 moon_dir; -	VARYING vec2 vary_fragcoord; - -	VARYING vec3 vary_position; - -	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]; - -	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); - -		//get light vector -		vec3 lv = lp.xyz-v; - -		//get distance -		float dist = length(lv); -		float da = 1.0; - -		dist /= la; - -		/* 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 (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) -			{ -			   return col; -			} - -			// spotlight coefficient. -			float spot = max(dot(-ln, lv), is_pointlight); -			da *= spot*spot; // GL_SPOT_EXPONENT=2 - -			//angular attenuation -			da *= dot(n, lv); - -			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); - -			// 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; - -				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); -				} -			} -		} - -		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 +    #ifdef DEFINE_GL_FRAGCOLOR +        out vec4 frag_color; +    #else +        #define frag_color gl_FragColor +    #endif + +    #ifdef HAS_SUN_SHADOW +    float sampleDirectionalShadow(vec3 pos, vec3 norm, vec2 pos_screen); +    #endif + +    uniform samplerCube environmentMap; +    uniform sampler2D     lightFunc; + +    // Inputs +    uniform vec4 morphFactor; +    uniform vec3 camPosLocal; +    uniform mat3 env_mat; + +    uniform vec3 sun_dir; +    uniform vec3 moon_dir; +    VARYING vec2 vary_fragcoord; + +    VARYING vec3 vary_position; + +    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]; + +    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); + +        //get light vector +        vec3 lv = lp.xyz-v; + +        //get distance +        float dist = length(lv); +        float da = 1.0; + +        dist /= la; + +        /* 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 (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) +            { +               return col; +            } + +            // spotlight coefficient. +            float spot = max(dot(-ln, lv), is_pointlight); +            da *= spot*spot; // GL_SPOT_EXPONENT=2 + +            //angular attenuation +            da *= dot(n, lv); + +            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); + +            // 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; + +                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); +                } +            } +        } + +        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; @@ -295,8 +295,8 @@ void main()      //    At midday the brightness is very close.      vec4 final_normal = vec4(abnormal, env_intensity, 0.0); -	vec3 color = vec3(0.0); -	float al   = 0.0; +    vec3 color = vec3(0.0); +    float al   = 0.0;      if (emissive_brightness >= 1.0)      { @@ -305,8 +305,8 @@ void main()          final_normal = vec4(abnormal, ei, 0.0);  #endif -		color.rgb = final_color.rgb; -		al        = vertex_color.a; +        color.rgb = final_color.rgb; +        al        = vertex_color.a;      }      vec4 final_specular = spec; @@ -320,143 +320,143 @@ void main()  #if (DIFFUSE_ALPHA_MODE == DIFFUSE_ALPHA_MODE_BLEND) -	if (emissive_brightness < 1.0) -	{ -		//forward rendering, output just lit RGBA -		vec3 pos = vary_position; +    if (emissive_brightness < 1.0) +    { +        //forward rendering, output just lit RGBA +        vec3 pos = vary_position; -		float shadow = 1.0f; +        float shadow = 1.0f;  #ifdef HAS_SUN_SHADOW -		shadow = sampleDirectionalShadow(pos.xyz, norm.xyz, pos_screen); +        shadow = sampleDirectionalShadow(pos.xyz, norm.xyz, pos_screen);  #endif -		spec = final_specular; +        spec = final_specular; -		float envIntensity = final_normal.z; +        float envIntensity = final_normal.z; -		vec3 light_dir = (sun_up_factor == 1) ? sun_dir : moon_dir; +        vec3 light_dir = (sun_up_factor == 1) ? sun_dir : moon_dir; -		float bloom = 0.0; -		vec3 sunlit; -		vec3 amblit; -		vec3 additive; -		vec3 atten; +        float bloom = 0.0; +        vec3 sunlit; +        vec3 amblit; +        vec3 additive; +        vec3 atten; -		calcAtmosphericVars(pos.xyz, light_dir, 1.0, sunlit, amblit, additive, atten, false); +        calcAtmosphericVars(pos.xyz, light_dir, 1.0, sunlit, amblit, additive, atten, false); -		vec3 refnormpersp = normalize(reflect(pos.xyz, norm.xyz)); +        vec3 refnormpersp = normalize(reflect(pos.xyz, norm.xyz)); -		float da = dot(norm.xyz, normalize(light_dir.xyz)); -		float final_da = clamp(da, 0.0, 1.0); +        float da = dot(norm.xyz, normalize(light_dir.xyz)); +        float final_da = clamp(da, 0.0, 1.0); -		float ambient = da; -		ambient *= 0.5; -		ambient *= ambient; -		ambient = (1.0 - ambient); +        float ambient = da; +        ambient *= 0.5; +        ambient *= ambient; +        ambient = (1.0 - ambient); -		vec3 sun_contrib = min(final_da, shadow) * sunlit; +        vec3 sun_contrib = min(final_da, shadow) * sunlit;  #if !defined(AMBIENT_KILL) -		color.rgb = amblit; -		color.rgb *= ambient; +        color.rgb = amblit; +        color.rgb *= ambient;  #endif  vec3 post_ambient = color.rgb;  #if !defined(SUNLIGHT_KILL) -		color.rgb += sun_contrib; +        color.rgb += sun_contrib;  #endif  vec3 post_sunlight = color.rgb; -		//color.rgb *= diffuse_srgb.rgb; -		color.rgb *= diffuse_linear.rgb; // SL-12006 +        //color.rgb *= diffuse_srgb.rgb; +        color.rgb *= diffuse_linear.rgb; // SL-12006  vec3 post_diffuse = color.rgb; -		float glare = 0.0; - -		if (spec.a > 0.0) // specular reflection -		{ -			vec3 npos = -normalize(pos.xyz); - -			//vec3 ref = dot(pos+lv, norm); -			vec3 h = normalize(light_dir.xyz+npos); -			float nh = dot(norm.xyz, h); -			float nv = dot(norm.xyz, 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 sp = sun_contrib*scol / 16.0f; -				sp = clamp(sp, vec3(0), vec3(1)); -				bloom = dot(sp, sp) / 6.0; -	#if !defined(SUNLIGHT_KILL) -				color += sp * spec.rgb; -	#endif -			} -		} - -	vec3 post_spec = color.rgb; - -		if (envIntensity > 0.0) -		{ -			//add environmentmap -			vec3 env_vec = env_mat * refnormpersp; -			 -			vec3 reflected_color = textureCube(environmentMap, env_vec).rgb; - -	#if !defined(SUNLIGHT_KILL) -			color = mix(color.rgb, reflected_color, envIntensity); -	#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; -		} +        float glare = 0.0; + +        if (spec.a > 0.0) // specular reflection +        { +            vec3 npos = -normalize(pos.xyz); + +            //vec3 ref = dot(pos+lv, norm); +            vec3 h = normalize(light_dir.xyz+npos); +            float nh = dot(norm.xyz, h); +            float nv = dot(norm.xyz, 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 sp = sun_contrib*scol / 16.0f; +                sp = clamp(sp, vec3(0), vec3(1)); +                bloom = dot(sp, sp) / 6.0; +    #if !defined(SUNLIGHT_KILL) +                color += sp * spec.rgb; +    #endif +            } +        } + +    vec3 post_spec = color.rgb; + +        if (envIntensity > 0.0) +        { +            //add environmentmap +            vec3 env_vec = env_mat * refnormpersp; +             +            vec3 reflected_color = textureCube(environmentMap, env_vec).rgb; + +    #if !defined(SUNLIGHT_KILL) +            color = mix(color.rgb, reflected_color, envIntensity); +    #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; -		color = atmosFragLighting(color, additive, atten); +        color = atmosFragLighting(color, additive, atten); -		//convert to linear space before adding local lights -		color = srgb_to_linear(color); +        //convert to linear space before adding local lights +        color = srgb_to_linear(color);  vec3 post_atmo = color.rgb; -		vec3 npos = normalize(-pos.xyz); +        vec3 npos = normalize(-pos.xyz); -		vec3 light = vec3(0,0,0); +        vec3 light = vec3(0,0,0);  #define LIGHT_LOOP(i) light.rgb += calcPointLightOrSpotLight(light_diffuse[i].rgb, npos, diffuse_linear.rgb, final_specular, pos.xyz, norm.xyz, light_position[i], light_direction[i].xyz, light_attenuation[i].x, light_attenuation[i].y, light_attenuation[i].z, glare, light_attenuation[i].w ); -			LIGHT_LOOP(1) -			LIGHT_LOOP(2) -			LIGHT_LOOP(3) -			LIGHT_LOOP(4) -			LIGHT_LOOP(5) -			LIGHT_LOOP(6) -			LIGHT_LOOP(7) +            LIGHT_LOOP(1) +            LIGHT_LOOP(2) +            LIGHT_LOOP(3) +            LIGHT_LOOP(4) +            LIGHT_LOOP(5) +            LIGHT_LOOP(6) +            LIGHT_LOOP(7) -		glare = min(glare, 1.0); -		al = max(diffuse_linear.a,glare)*vertex_color.a; +        glare = min(glare, 1.0); +        al = max(diffuse_linear.a,glare)*vertex_color.a;  #if !defined(LOCAL_LIGHT_KILL) -		color.rgb += light.rgb; +        color.rgb += light.rgb;  #endif -		color = scaleSoftClipFrag(color); +        color = scaleSoftClipFrag(color); -		// (only) post-deferred needs inline gamma correction -		color.rgb = linear_to_srgb(color.rgb); +        // (only) post-deferred needs inline gamma correction +        color.rgb = linear_to_srgb(color.rgb);  //color.rgb = amblit;  //color.rgb = vec3(ambient); @@ -472,11 +472,11 @@ vec3 post_atmo = color.rgb;  //color.rgb = post_atmo;  #ifdef WATER_FOG -		vec4 temp = applyWaterFogView(pos, vec4(color.rgb, al)); -		color.rgb = temp.rgb; -		al = temp.a; +        vec4 temp = applyWaterFogView(pos, vec4(color.rgb, al)); +        color.rgb = temp.rgb; +        al = temp.a;  #endif -	} // !fullbright +    } // !fullbright      frag_color.rgb = color.rgb;      frag_color.a   = al; | 
