diff options
Diffstat (limited to 'indra/newview/app_settings/shaders/class2')
5 files changed, 19 insertions, 42 deletions
| diff --git a/indra/newview/app_settings/shaders/class2/deferred/alphaF.glsl b/indra/newview/app_settings/shaders/class2/deferred/alphaF.glsl index 111e88c6e9..5faa94fb03 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/alphaF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/alphaF.glsl @@ -45,6 +45,7 @@ uniform sampler2D diffuseMap;  #endif  uniform vec2 screen_res; +uniform vec2 shadow_res;  vec3 atmosLighting(vec3 light);  vec3 scaleSoftClip(vec3 light); @@ -66,7 +67,6 @@ VARYING vec4 vertex_color;  uniform mat4 shadow_matrix[6];  uniform vec4 shadow_clip; -uniform vec2 shadow_res;  uniform float shadow_bias;  uniform mat4 inv_proj; @@ -84,7 +84,7 @@ vec3 calcDirectionalLight(vec3 n, vec3 l)          return vec3(a,a,a);  } -float calcPointLightOrSpotLight(vec3 v, vec3 n, vec4 lp, vec3 ln, float la, float fa, float is_pointlight) +vec3 calcPointLightOrSpotLight(vec3 v, vec3 n, vec4 lp, vec3 ln, float la, float fa, float is_pointlight)  {  	//get light vector  	vec3 lv = lp.xyz-v; @@ -111,7 +111,7 @@ float calcPointLightOrSpotLight(vec3 v, vec3 n, vec4 lp, vec3 ln, float la, floa  		da *= max(pow(dot(n, lv), 0.7), 0.0);		  	} -	return da;	 +	return vec3(da,da,da);	  }  float pcfShadow(sampler2DShadow shadowMap, vec4 stc) @@ -204,10 +204,11 @@ void main()  		shadow = 1.0;  	} -#if INDEX_MODE == INDEXED -	vec4 diff = diffuseLookup(vary_texcoord0.xy); +	vec4 diff; +#if INDEX_MODE == INDEXED	 +	diff = diffuseLookup(vary_texcoord0.xy);  #else -	vec4 diff = texture2D(diffuseMap,vary_texcoord0.xy); +	diff = texture2D(diffuseMap,vary_texcoord0.xy);  #endif  #if INDEX_MODE == NON_INDEXED_NO_COLOR @@ -216,7 +217,7 @@ void main()  	float vertex_color_alpha = vertex_color.a;  #endif -	vec3 normal = vary_norm; +	vec3 normal = texture2D(bumpMap, vary_texcoord1.xy).xyz * 2 - 1;  	vec3 l = light_position[0].xyz;  	vec3 dlight = calcDirectionalLight(normal, l); @@ -228,11 +229,10 @@ void main()  	color.rgb = atmosLighting(color.rgb);  	color.rgb = scaleSoftClip(color.rgb); -	vec3 light_col = vec3(0,0,0); +	col = vec4(0,0,0,0); -#ifdef MAC_GEFORCE_HACK    #define LIGHT_LOOP(i) \ -		light_col += light_diffuse[i].rgb * calcPointLightOrSpotLight(pos.xyz, normal, light_position[i], light_direction[i], light_attenuation[i].x, light_attenuation[i].y, light_attenuation[i].z); +		col.rgb += light_diffuse[i].rgb * calcPointLightOrSpotLight(pos.xyz, normal, light_position[i], light_direction[i].xyz, light_attenuation[i].x, light_attenuation[i].y, light_attenuation[i].z);  	LIGHT_LOOP(1)  	LIGHT_LOOP(2) @@ -241,14 +241,8 @@ void main()  	LIGHT_LOOP(5)  	LIGHT_LOOP(6)  	LIGHT_LOOP(7) -#else -	for (int i = 2; i < 8; i++) -	{ -		light_col += light_diffuse[i].rgb * calcPointLightOrSpotLight(pos.xyz, normal, light_position[i], light_direction[i], light_attenuation[i].x, light_attenuation[i].y, light_attenuation[i].z); -	} -#endif -	color.rgb += diff.rgb * vary_pointlight_col * light_col; +	color.rgb += diff.rgb * vary_pointlight_col * col.rgb;  	frag_color = vec4(1,0,1,1);  	//frag_color = color; diff --git a/indra/newview/app_settings/shaders/class2/deferred/alphaNonIndexedF.glsl b/indra/newview/app_settings/shaders/class2/deferred/alphaNonIndexedF.glsl index 39a5a9894d..9670d59399 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/alphaNonIndexedF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/alphaNonIndexedF.glsl @@ -70,7 +70,7 @@ vec3 calcDirectionalLight(vec3 n, vec3 l)          return vec3(a,a,a);  } -float calcPointLightOrSpotLight(vec3 v, vec3 n, vec4 lp, vec3 ln, float la, float fa, float is_pointlight) +vec3 calcPointLightOrSpotLight(vec3 v, vec3 n, vec4 lp, vec3 ln, float la, float fa, float is_pointlight)  {  	//get light vector  	vec3 lv = lp.xyz-v; @@ -97,7 +97,7 @@ float calcPointLightOrSpotLight(vec3 v, vec3 n, vec4 lp, vec3 ln, float la, floa  		da *= max(pow(dot(n, lv), 0.7), 0.0);		  	} -	return da;	 +	return vec3(da,da,da);	  }  vec4 getPosition(vec2 pos_screen) @@ -217,7 +217,6 @@ void main()  	color.rgb = scaleSoftClip(color.rgb);  	vec3 light_col = vec3(0,0,0); -#if MAC_GEFORCE_HACK    #define LIGHT_LOOP(i) \  		light_col += light_diffuse[i].rgb * calcPointLightOrSpotLight(pos.xyz, vary_norm, light_position[i], light_direction[i], light_attenuation[i].x, light_attenuation[i].y, light_attenuation[i].z); @@ -228,12 +227,6 @@ void main()  	LIGHT_LOOP(5)  	LIGHT_LOOP(6)  	LIGHT_LOOP(7) -#else -	for (int i = 2; i < 8; i++) -	{ -		light_col += light_diffuse[i].rgb * calcPointLightOrSpotLight(pos.xyz, vary_norm, light_position[i], light_direction[i], light_attenuation[i].x, light_attenuation[i].y, light_attenuation[i].z); -	} -#endif  	color.rgb += diff.rgb * vary_pointlight_col * light_col; diff --git a/indra/newview/app_settings/shaders/class2/deferred/alphaNonIndexedNoColorF.glsl b/indra/newview/app_settings/shaders/class2/deferred/alphaNonIndexedNoColorF.glsl index 566aefea6a..fae279fba0 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/alphaNonIndexedNoColorF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/alphaNonIndexedNoColorF.glsl @@ -72,7 +72,7 @@ vec3 calcDirectionalLight(vec3 n, vec3 l)          return vec3(a, a, a);  } -float calcPointLightOrSpotLight(vec3 v, vec3 n, vec4 lp, vec3 ln, float la, float fa, float is_pointlight) +vec3 calcPointLightOrSpotLight(vec3 v, vec3 n, vec4 lp, vec3 ln, float la, float fa, float is_pointlight)  {  	//get light vector  	vec3 lv = lp.xyz-v; @@ -99,7 +99,7 @@ float calcPointLightOrSpotLight(vec3 v, vec3 n, vec4 lp, vec3 ln, float la, floa  		da *= max(pow(dot(n, lv), 0.7), 0.0);		  	} -	return da;	 +	return vec3(da,da,da);	  }  vec4 getPosition(vec2 pos_screen) @@ -224,8 +224,7 @@ void main()  	color.rgb = scaleSoftClip(color.rgb);  	vec3 light_col = vec3(0,0,0); -#if MAC_GEFORCE_HACK -  #define LIGHT_LOOP(i) +  #define LIGHT_LOOP(i) \  		light_col += light_diffuse[i].rgb * calcPointLightOrSpotLight(pos.xyz, vary_norm, light_position[i], light_direction[i], light_attenuation[i].x, light_attenuation[i].y, light_attenuation[i].z);  	LIGHT_LOOP(1) @@ -235,12 +234,7 @@ void main()  	LIGHT_LOOP(5)  	LIGHT_LOOP(6)  	LIGHT_LOOP(7) -#else -	for (int i = 2; i < 8; i++) -	{ -		light_col += light_diffuse[i].rgb * calcPointLightOrSpotLight(pos.xyz, vary_norm, light_position[i], light_direction[i], light_attenuation[i].x, light_attenuation[i].y, light_attenuation[i].z); -	} -#endif +  	color.rgb += diff.rgb * vary_pointlight_col * light_col;  	frag_color = color; diff --git a/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl index b3ab8fd510..90b6856c5c 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl @@ -213,9 +213,7 @@ void main()  			vec3 lcol = color.rgb * plcol.rgb * plcol.a; -			lit = da * dist_atten * noise; -			 -			lit = pow(lit, 0.7); +			lit = pow(da,0.7) * dist_atten * noise;  			col = lcol*lit*diff_tex*shadow;  			amb_da += (da*0.5)*(1.0-shadow)*proj_ambiance; diff --git a/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl index 43fc5dbc5e..5fd6f0afb7 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl @@ -214,9 +214,7 @@ void main()  			vec3 lcol = color.rgb * plcol.rgb * plcol.a; -			lit = da * dist_atten * noise; -			 -			lit = pow(lit, 0.7); +			lit = pow(da, 0.7) * dist_atten * noise;  			col = lcol*lit*diff_tex*shadow;  			amb_da += (da*0.5)*(1.0-shadow)*proj_ambiance; | 
