diff options
Diffstat (limited to 'indra/newview/app_settings/shaders/class2')
7 files changed, 23 insertions, 10 deletions
| diff --git a/indra/newview/app_settings/shaders/class2/deferred/blurLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/blurLightF.glsl index 0fad5b4b50..d1c5d7cb19 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/blurLightF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/blurLightF.glsl @@ -37,7 +37,8 @@ vec4 getPosition(vec2 pos_screen)  void main()   { -	vec3 norm = texture2DRect(normalMap, vary_fragcoord.xy).xyz*2.0-1.0; +	vec3 norm = texture2DRect(normalMap, vary_fragcoord.xy).xyz; +	norm = vec3((norm.xy-0.5)*2.0,norm.z); // unpack norm  	vec3 pos = getPosition(vary_fragcoord.xy).xyz;  	vec4 ccol = texture2DRect(lightMap, vary_fragcoord.xy).rgba; diff --git a/indra/newview/app_settings/shaders/class2/deferred/edgeF.glsl b/indra/newview/app_settings/shaders/class2/deferred/edgeF.glsl index 02beddd43b..e32e9f4b32 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/edgeF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/edgeF.glsl @@ -31,7 +31,8 @@ float getDepth(vec2 pos_screen)  void main()   { -	vec3 norm = texture2DRect(normalMap, vary_fragcoord.xy).xyz*2.0-1.0; +	vec3 norm = texture2DRect(normalMap, vary_fragcoord.xy).xyz; +	norm = vec3((norm.xy-0.5)*2.0,norm.z); // unpack norm  	float depth = getDepth(vary_fragcoord.xy);  	vec2 tc = vary_fragcoord.xy; @@ -46,8 +47,12 @@ void main()  	de = step(depth_cutoff, de);  	vec2 ne; -	ne.x = dot(texture2DRect(normalMap, tc+vec2(-sc,-sc)).rgb*2.0-1.0, norm); -	ne.y = dot(texture2DRect(normalMap, tc+vec2(sc,sc)).rgb*2.0-1.0, norm); +	vec3 nexnorm = texture2DRect(normalMap, tc+vec2(-sc,-sc)).rgb; +	nexnorm = vec3((nexnorm.xy-0.5)*2.0,nexnorm.z); // unpack norm +	ne.x = dot(nexnorm, norm); +	vec3 neynorm = texture2DRect(normalMap, tc+vec2(sc,sc)).rgb; +	neynorm = vec3((neynorm.xy-0.5)*2.0,neynorm.z); // unpack norm +	ne.y = dot(neynorm, norm);  	ne = 1.0-ne; diff --git a/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl index 5308e5bb1e..22ffb58c63 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl @@ -129,7 +129,8 @@ void main()  		shadow = min(sh[proj_shadow_idx]+shadow_fade, 1.0);  	} -	vec3 norm = texture2DRect(normalMap, frag.xy).xyz*2.0-1.0; +	vec3 norm = texture2DRect(normalMap, frag.xy).xyz; +	norm = vec3((norm.xy-0.5)*2.0,norm.z); // unpack norm  	norm = normalize(norm);  	float l_dist = -dot(lv, proj_n); diff --git a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl index bc84720b86..fd6ae2b960 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl @@ -258,7 +258,8 @@ void main()  	vec2 tc = vary_fragcoord.xy;  	float depth = texture2DRect(depthMap, tc.xy).a;  	vec3 pos = getPosition_d(tc, depth).xyz; -	vec3 norm = texture2DRect(normalMap, tc).xyz*2.0-1.0; +	vec3 norm = texture2DRect(normalMap, tc).xyz; +	norm = vec3((norm.xy-0.5)*2.0,norm.z); // unpack norm  	//vec3 nz = texture2D(noiseMap, vary_fragcoord.xy/128.0).xyz;  	float da = max(dot(norm.xyz, vary_light.xyz), 0.0); @@ -310,7 +311,9 @@ void main()  		float refdepth = texture2DRect(depthMap, ref2d).a;  		vec3 refpos = getPosition_d(ref2d, refdepth).xyz;  		float refshad = texture2DRect(lightMap, ref2d).r; -		vec3 refn = normalize(texture2DRect(normalMap, ref2d).rgb * 2.0 - 1.0); +		vec3 refn = texture2DRect(normalMap, ref2d).rgb; +		refn = vec3((refn.xy-0.5)*2.0,refn.z); // unpack norm +		refn = normalize(refn);  		// figure out how appropriate our guess actually was  		float refapprop = max(0.0, dot(-refnorm, normalize(pos - refpos)));  		// darken reflections from points which face away from the reflected ray - our guess was a back-face diff --git a/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl index eeaecc157f..8a90199b7c 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl @@ -82,7 +82,8 @@ void main()  		discard;  	} -	vec3 norm = texture2DRect(normalMap, frag.xy).xyz*2.0-1.0; +	vec3 norm = texture2DRect(normalMap, frag.xy).xyz; +	norm = vec3((norm.xy-0.5)*2.0,norm.z); // unpack norm  	norm = normalize(norm);  	float l_dist = -dot(lv, proj_n); diff --git a/indra/newview/app_settings/shaders/class2/deferred/sunLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/sunLightF.glsl index 46db3c990c..195a20e9dd 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/sunLightF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/sunLightF.glsl @@ -104,8 +104,9 @@ void main()  	vec4 pos = getPosition(pos_screen);  	vec4 nmap4 = texture2DRect(normalMap, pos_screen); +	nmap4 = vec4((nmap4.xy-0.5)*2.0,nmap4.z,nmap4.w); // unpack norm  	float displace = nmap4.w; -	vec3 norm = nmap4.xyz*2.0-1.0; +	vec3 norm = nmap4.xyz;  	/*if (pos.z == 0.0) // do nothing for sky *FIX: REMOVE THIS IF/WHEN THE POSITION MAP IS BEING USED AS A STENCIL  	{ diff --git a/indra/newview/app_settings/shaders/class2/deferred/sunLightSSAOF.glsl b/indra/newview/app_settings/shaders/class2/deferred/sunLightSSAOF.glsl index a0dfc96f14..4e33a1af45 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/sunLightSSAOF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/sunLightSSAOF.glsl @@ -164,8 +164,9 @@ void main()  	vec4 pos = getPosition(pos_screen);  	vec4 nmap4 = texture2DRect(normalMap, pos_screen); +	nmap4 = vec4((nmap4.xy-0.5)*2.0,nmap4.z,nmap4.w); // unpack norm  	float displace = nmap4.w; -	vec3 norm = nmap4.xyz*2.0-1.0; +	vec3 norm = nmap4.xyz;  	/*if (pos.z == 0.0) // do nothing for sky *FIX: REMOVE THIS IF/WHEN THE POSITION MAP IS BEING USED AS A STENCIL  	{ | 
