diff options
| author | Dave Parks <davep@lindenlab.com> | 2013-05-17 13:54:58 -0500 | 
|---|---|---|
| committer | Dave Parks <davep@lindenlab.com> | 2013-05-17 13:54:58 -0500 | 
| commit | 88a42cd453b19e66551a36d635981da5aaa04933 (patch) | |
| tree | 23e2172367f957cb8905e04fcdb32403f27c5e56 | |
| parent | 559934705fd766430ccdd4b4e41e26a277f63637 (diff) | |
NORSPEC-187 Add directionality to ambient lighting.
4 files changed, 33 insertions, 0 deletions
| diff --git a/indra/newview/app_settings/shaders/class1/deferred/alphaV.glsl b/indra/newview/app_settings/shaders/class1/deferred/alphaV.glsl index 77d02b36ff..247ee0a34f 100755 --- a/indra/newview/app_settings/shaders/class1/deferred/alphaV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/alphaV.glsl @@ -86,6 +86,8 @@ uniform vec3 light_direction[8];  uniform vec3 light_attenuation[8];   uniform vec3 light_diffuse[8]; +uniform vec3 sun_dir; +  vec3 calcDirectionalLight(vec3 n, vec3 l)  {          float a = max(dot(n,l),0.0); @@ -194,6 +196,13 @@ void main()  	// Add windlight lights  	col.rgb = atmosAmbient(col.rgb); +	float ambient = min(abs(dot(norm.xyz, sun_dir.xyz)), 1.0); +	ambient *= 0.5; +	ambient *= ambient; +	ambient = (1.0-ambient); + +	col.rgb *= ambient; +  	vary_ambient = col.rgb*diff.rgb;  	vary_directional.rgb = atmosAffectDirectionalLight(1.0f); diff --git a/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl b/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl index 3c25f49fe0..fc4b8b33f8 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl @@ -579,6 +579,14 @@ void main()            final_da = max(final_da, 0.0f);  	col.rgb = atmosAmbient(col); +	 +	float ambient = min(abs(dot(norm.xyz, sun_dir.xyz)), 1.0); +	ambient *= 0.5; +	ambient *= ambient; +	ambient = (1.0-ambient); + +	col.rgb *= ambient; +  	col.rgb = col.rgb + atmosAffectDirectionalLight(final_da * 2.6);  	col.rgb *= diffuse.rgb; diff --git a/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl index a1dff9188f..9197df2628 100755 --- a/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl @@ -301,6 +301,13 @@ void main()  		calcAtmospherics(pos.xyz, 1.0);  		col = atmosAmbient(vec3(0)); +		float ambient = min(abs(dot(norm.xyz, sun_dir.xyz)), 1.0); +		ambient *= 0.5; +		ambient *= ambient; +		ambient = (1.0-ambient); + +		col.rgb *= ambient; +  		col += atmosAffectDirectionalLight(max(min(da, 1.0) * 2.6, diffuse.a));  		col *= diffuse.rgb; diff --git a/indra/newview/app_settings/shaders/class2/deferred/alphaV.glsl b/indra/newview/app_settings/shaders/class2/deferred/alphaV.glsl index 127c1709b8..13c6ffc607 100755 --- a/indra/newview/app_settings/shaders/class2/deferred/alphaV.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/alphaV.glsl @@ -83,6 +83,8 @@ uniform vec3 light_direction[8];  uniform vec3 light_attenuation[8];   uniform vec3 light_diffuse[8]; +uniform vec3 sun_dir; +  vec3 calcDirectionalLight(vec3 n, vec3 l)  {          float a = max(dot(n,l),0.0); @@ -190,6 +192,13 @@ void main()  	// Add windlight lights  	col.rgb = atmosAmbient(col.rgb); +	float ambient = min(abs(dot(norm.xyz, sun_dir.xyz)), 1.0); +	ambient *= 0.5; +	ambient *= ambient; +	ambient = (1.0-ambient); + +	col.rgb *= ambient; +  	vary_directional.rgb = atmosAffectDirectionalLight(1.0f);  	vary_ambient = col.rgb*dff; | 
