diff options
Diffstat (limited to 'indra/newview/app_settings/shaders/class1/deferred')
47 files changed, 397 insertions, 46 deletions
| diff --git a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl b/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl index 171a0e76f7..b08c5dd295 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl @@ -4,6 +4,8 @@   * $LicenseInfo:firstyear=2007&license=viewerlgpl$   * $/LicenseInfo$   */ +  +#version 120  #extension GL_ARB_texture_rectangle : enable @@ -22,7 +24,6 @@ varying vec3 vary_ambient;  varying vec3 vary_directional;  varying vec3 vary_fragcoord;  varying vec3 vary_position; -varying vec3 vary_light;  uniform mat4 inv_proj; @@ -55,7 +56,6 @@ void main()  	color.rgb = scaleSoftClip(color.rgb); -	//gl_FragColor = gl_Color;  	gl_FragColor = color;  	//gl_FragColor = vec4(1,0,1,1);  	//gl_FragColor = vec4(1,0,1,1)*shadow; diff --git a/indra/newview/app_settings/shaders/class1/deferred/alphaSkinnedV.glsl b/indra/newview/app_settings/shaders/class1/deferred/alphaSkinnedV.glsl new file mode 100644 index 0000000000..4261f943fb --- /dev/null +++ b/indra/newview/app_settings/shaders/class1/deferred/alphaSkinnedV.glsl @@ -0,0 +1,83 @@ +/**  + * @file alphaSkinnedV.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ +  +#version 120 + +vec4 calcLighting(vec3 pos, vec3 norm, vec4 color, vec4 baseCol); +mat4 getObjectSkinnedTransform(); +void calcAtmospherics(vec3 inPositionEye); + +float calcDirectionalLight(vec3 n, vec3 l); +float calcPointLightOrSpotLight(vec3 v, vec3 n, vec4 lp, vec3 ln, float la, float is_pointlight); + +vec3 atmosAmbient(vec3 light); +vec3 atmosAffectDirectionalLight(float lightIntensity); +vec3 scaleDownLight(vec3 light); +vec3 scaleUpLight(vec3 light); + +varying vec3 vary_position; +varying vec3 vary_ambient; +varying vec3 vary_directional; +varying vec3 vary_normal; +varying vec3 vary_light; +varying vec3 vary_fragcoord; + +uniform float near_clip; + +void main() +{ +	gl_TexCoord[0] = gl_MultiTexCoord0; +				 +	vec4 pos; +	vec3 norm; +	 +	mat4 trans = getObjectSkinnedTransform(); +	trans = gl_ModelViewMatrix * trans; +	 +	pos = trans * gl_Vertex; +	 +	norm = gl_Vertex.xyz + gl_Normal.xyz; +	norm = normalize(( trans*vec4(norm, 1.0) ).xyz-pos.xyz); +	 +	vec4 frag_pos = gl_ProjectionMatrix * pos; +	gl_Position = frag_pos; +	 +	vary_position = pos.xyz; +	vary_normal = norm;	 +	 +	calcAtmospherics(pos.xyz); + +	vec4 col = vec4(0.0, 0.0, 0.0, gl_Color.a); + +	// Collect normal lights (need to be divided by two, as we later multiply by 2) +	col.rgb += gl_LightSource[2].diffuse.rgb*calcPointLightOrSpotLight(pos.xyz, norm, gl_LightSource[2].position, gl_LightSource[2].spotDirection.xyz, gl_LightSource[2].linearAttenuation, gl_LightSource[2].specular.a); +	col.rgb += gl_LightSource[3].diffuse.rgb*calcPointLightOrSpotLight(pos.xyz, norm, gl_LightSource[3].position, gl_LightSource[3].spotDirection.xyz, gl_LightSource[3].linearAttenuation, gl_LightSource[3].specular.a); +	col.rgb += gl_LightSource[4].diffuse.rgb*calcPointLightOrSpotLight(pos.xyz, norm, gl_LightSource[4].position, gl_LightSource[4].spotDirection.xyz, gl_LightSource[4].linearAttenuation, gl_LightSource[4].specular.a); +	col.rgb += gl_LightSource[5].diffuse.rgb*calcPointLightOrSpotLight(pos.xyz, norm, gl_LightSource[5].position, gl_LightSource[5].spotDirection.xyz, gl_LightSource[5].linearAttenuation, gl_LightSource[5].specular.a); +	col.rgb += gl_LightSource[6].diffuse.rgb*calcPointLightOrSpotLight(pos.xyz, norm, gl_LightSource[6].position, gl_LightSource[6].spotDirection.xyz, gl_LightSource[6].linearAttenuation, gl_LightSource[6].specular.a); +	col.rgb += gl_LightSource[7].diffuse.rgb*calcPointLightOrSpotLight(pos.xyz, norm, gl_LightSource[7].position, gl_LightSource[7].spotDirection.xyz, gl_LightSource[7].linearAttenuation, gl_LightSource[7].specular.a); +	col.rgb += gl_LightSource[1].diffuse.rgb*calcDirectionalLight(norm, gl_LightSource[1].position.xyz); +	col.rgb = scaleDownLight(col.rgb); +	 +	// Add windlight lights +	col.rgb += atmosAmbient(vec3(0.)); +	 +	vary_light = gl_LightSource[0].position.xyz; +	 +	vary_ambient = col.rgb*gl_Color.rgb; +	vary_directional = gl_Color.rgb*atmosAffectDirectionalLight(max(calcDirectionalLight(norm, gl_LightSource[0].position.xyz), (1.0-gl_Color.a)*(1.0-gl_Color.a))); +	 +	col.rgb = min(col.rgb*gl_Color.rgb, 1.0); +	 +	gl_FrontColor = col; + +	gl_FogFragCoord = pos.z; +	 +	vary_fragcoord.xyz = frag_pos.xyz + vec3(0,0,near_clip); +} + + diff --git a/indra/newview/app_settings/shaders/class1/deferred/alphaV.glsl b/indra/newview/app_settings/shaders/class1/deferred/alphaV.glsl index fabbce0824..7ac410da95 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/alphaV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/alphaV.glsl @@ -5,6 +5,8 @@   * $/LicenseInfo$   */ +#version 120 +  vec4 calcLighting(vec3 pos, vec3 norm, vec4 color, vec4 baseCol);  void calcAtmospherics(vec3 inPositionEye); @@ -36,7 +38,7 @@ void main()  	vec4 pos = (gl_ModelViewMatrix * gl_Vertex);  	vec3 norm = normalize(gl_NormalMatrix * gl_Normal); -	vary_position = pos.xyz + norm.xyz * (-pos.z/64.0*shadow_offset+shadow_bias); +	vary_position = pos.xyz;  	calcAtmospherics(pos.xyz); diff --git a/indra/newview/app_settings/shaders/class1/deferred/attachmentShadowF.glsl b/indra/newview/app_settings/shaders/class1/deferred/attachmentShadowF.glsl new file mode 100644 index 0000000000..164322c3a7 --- /dev/null +++ b/indra/newview/app_settings/shaders/class1/deferred/attachmentShadowF.glsl @@ -0,0 +1,18 @@ +/**  + * @file avatarShadowF.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +#version 120 + +uniform sampler2D diffuseMap; + + +void main()  +{ +	//gl_FragColor = vec4(1,1,1,gl_Color.a * texture2D(diffuseMap, gl_TexCoord[0].xy).a); +	gl_FragColor = vec4(1,1,1,1); +} + diff --git a/indra/newview/app_settings/shaders/class1/deferred/attachmentShadowV.glsl b/indra/newview/app_settings/shaders/class1/deferred/attachmentShadowV.glsl new file mode 100644 index 0000000000..5ae41cb730 --- /dev/null +++ b/indra/newview/app_settings/shaders/class1/deferred/attachmentShadowV.glsl @@ -0,0 +1,27 @@ +/**  + * @file attachmentShadowV.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +#version 120 + +mat4 getObjectSkinnedTransform(); + +void main() +{ +	//transform vertex +	gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0; +	 +	mat4 mat = getObjectSkinnedTransform(); +	 +	mat = gl_ModelViewMatrix * mat; +	vec3 pos = (mat*gl_Vertex).xyz; +	 +	gl_FrontColor = gl_Color; +	 +	vec4 p = gl_ProjectionMatrix * vec4(pos, 1.0); +	p.z = max(p.z, -p.w+0.01); +	gl_Position = p; +} diff --git a/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaF.glsl b/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaF.glsl index 82ce6d7377..7d9d6cc0b2 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaF.glsl @@ -5,6 +5,8 @@   * $/LicenseInfo$   */ +#version 120 +  uniform sampler2D diffuseMap;  uniform sampler2DShadow shadowMap0;  uniform sampler2DShadow shadowMap1; diff --git a/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaV.glsl b/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaV.glsl index 21ddc2fad8..5dfbb91393 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaV.glsl @@ -4,6 +4,8 @@   * $LicenseInfo:firstyear=2007&license=viewerlgpl$   * $/LicenseInfo$   */ +  +#version 120  vec4 calcLighting(vec3 pos, vec3 norm, vec4 color, vec4 baseCol);  mat4 getSkinnedTransform(); @@ -17,10 +19,13 @@ vec3 atmosAffectDirectionalLight(float lightIntensity);  vec3 scaleDownLight(vec3 light);  vec3 scaleUpLight(vec3 light); -varying vec4 vary_position; +varying vec3 vary_position;  varying vec3 vary_ambient;  varying vec3 vary_directional;  varying vec3 vary_normal; +varying vec3 vary_fragcoord; + +uniform float near_clip;  void main()  { @@ -40,8 +45,10 @@ void main()  	norm.z = dot(trans[2].xyz, gl_Normal);  	norm = normalize(norm); -	gl_Position = gl_ProjectionMatrix * pos; -	vary_position = pos; +	vec4 frag_pos = gl_ProjectionMatrix * pos; +	gl_Position = frag_pos; +	 +	vary_position = pos.xyz;  	vary_normal = norm;	  	calcAtmospherics(pos.xyz); @@ -71,7 +78,8 @@ void main()  	gl_FrontColor = col;  	gl_FogFragCoord = pos.z; - +	 +	vary_fragcoord.xyz = frag_pos.xyz + vec3(0,0,near_clip);  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/avatarF.glsl b/indra/newview/app_settings/shaders/class1/deferred/avatarF.glsl index e376892e0a..9748727147 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/avatarF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/avatarF.glsl @@ -4,6 +4,8 @@   * $LicenseInfo:firstyear=2007&license=viewerlgpl$   * $/LicenseInfo$   */ +  +#version 120  uniform sampler2D diffuseMap; diff --git a/indra/newview/app_settings/shaders/class1/deferred/avatarShadowF.glsl b/indra/newview/app_settings/shaders/class1/deferred/avatarShadowF.glsl index d88e3ecfd8..1b7ae06888 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/avatarShadowF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/avatarShadowF.glsl @@ -4,6 +4,8 @@   * $LicenseInfo:firstyear=2007&license=viewerlgpl$   * $/LicenseInfo$   */ +  +#version 120  uniform sampler2D diffuseMap; diff --git a/indra/newview/app_settings/shaders/class1/deferred/avatarShadowV.glsl b/indra/newview/app_settings/shaders/class1/deferred/avatarShadowV.glsl index 2af8c8f5f7..cf6579a40d 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/avatarShadowV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/avatarShadowV.glsl @@ -4,6 +4,8 @@   * $LicenseInfo:firstyear=2007&license=viewerlgpl$   * $/LicenseInfo$   */ +  +#version 120  mat4 getSkinnedTransform(); diff --git a/indra/newview/app_settings/shaders/class1/deferred/avatarV.glsl b/indra/newview/app_settings/shaders/class1/deferred/avatarV.glsl index 988226fb7c..69c93799b5 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/avatarV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/avatarV.glsl @@ -4,6 +4,8 @@   * $LicenseInfo:firstyear=2007&license=viewerlgpl$   * $/LicenseInfo$   */ +  +#version 120  mat4 getSkinnedTransform(); diff --git a/indra/newview/app_settings/shaders/class1/deferred/blurLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/blurLightF.glsl index 258a9b7c40..ea2df4b51a 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/blurLightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/blurLightF.glsl @@ -4,6 +4,8 @@   * $LicenseInfo:firstyear=2007&license=viewerlgpl$   * $/LicenseInfo$   */ +  +#version 120  #extension GL_ARB_texture_rectangle : enable diff --git a/indra/newview/app_settings/shaders/class1/deferred/blurLightV.glsl b/indra/newview/app_settings/shaders/class1/deferred/blurLightV.glsl index b1b3f55f00..c2d05c601a 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/blurLightV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/blurLightV.glsl @@ -4,6 +4,8 @@   * $LicenseInfo:firstyear=2007&license=viewerlgpl$   * $/LicenseInfo$   */ +  +#version 120  varying vec2 vary_fragcoord;  uniform vec2 screen_res; diff --git a/indra/newview/app_settings/shaders/class1/deferred/bumpF.glsl b/indra/newview/app_settings/shaders/class1/deferred/bumpF.glsl index 35f334d58e..37bfaac32c 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/bumpF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/bumpF.glsl @@ -4,6 +4,8 @@   * $LicenseInfo:firstyear=2007&license=viewerlgpl$   * $/LicenseInfo$   */ +  +#version 120  uniform sampler2D diffuseMap;  uniform sampler2D bumpMap; diff --git a/indra/newview/app_settings/shaders/class1/deferred/bumpSkinnedV.glsl b/indra/newview/app_settings/shaders/class1/deferred/bumpSkinnedV.glsl new file mode 100644 index 0000000000..d884f2e4a5 --- /dev/null +++ b/indra/newview/app_settings/shaders/class1/deferred/bumpSkinnedV.glsl @@ -0,0 +1,37 @@ +/**  + * @file bumpV.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +#version 120 + +varying vec3 vary_mat0; +varying vec3 vary_mat1; +varying vec3 vary_mat2; + +mat4 getObjectSkinnedTransform(); + +void main() +{ +	gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0; +	 +	mat4 mat = getObjectSkinnedTransform(); +	 +	mat = gl_ModelViewMatrix * mat; +	 +	vec3 pos = (mat*gl_Vertex).xyz; +	 +	 +	vec3 n = normalize((mat * vec4(gl_Normal.xyz+gl_Vertex.xyz, 1.0)).xyz-pos.xyz); +	vec3 b = normalize((mat * vec4(gl_MultiTexCoord2.xyz+gl_Vertex.xyz, 1.0)).xyz-pos.xyz); +	vec3 t = cross(b, n); +	 +	vary_mat0 = vec3(t.x, b.x, n.x); +	vary_mat1 = vec3(t.y, b.y, n.y); +	vary_mat2 = vec3(t.z, b.z, n.z); +	 +	gl_Position = gl_ProjectionMatrix*vec4(pos, 1.0); +	gl_FrontColor = gl_Color; +} diff --git a/indra/newview/app_settings/shaders/class1/deferred/bumpV.glsl b/indra/newview/app_settings/shaders/class1/deferred/bumpV.glsl index 6c8550cb5b..9b109b2db6 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/bumpV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/bumpV.glsl @@ -4,6 +4,8 @@   * $LicenseInfo:firstyear=2007&license=viewerlgpl$   * $/LicenseInfo$   */ +  +#version 120  varying vec3 vary_mat0;  varying vec3 vary_mat1; diff --git a/indra/newview/app_settings/shaders/class1/deferred/diffuseF.glsl b/indra/newview/app_settings/shaders/class1/deferred/diffuseF.glsl index 9bd622a506..35cfb80c93 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/diffuseF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/diffuseF.glsl @@ -4,6 +4,8 @@   * $LicenseInfo:firstyear=2007&license=viewerlgpl$   * $/LicenseInfo$   */ +  +#version 120  uniform sampler2D diffuseMap; diff --git a/indra/newview/app_settings/shaders/class1/deferred/diffuseSkinnedV.glsl b/indra/newview/app_settings/shaders/class1/deferred/diffuseSkinnedV.glsl new file mode 100644 index 0000000000..9a45c03237 --- /dev/null +++ b/indra/newview/app_settings/shaders/class1/deferred/diffuseSkinnedV.glsl @@ -0,0 +1,33 @@ +/**  + * @file diffuseSkinnedV.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +#version 120 + +varying vec3 vary_normal; + +mat4 getObjectSkinnedTransform(); + +void main() +{ +	gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0; +	 +	mat4 mat = getObjectSkinnedTransform(); +	 +	mat = gl_ModelViewMatrix * mat; +	vec3 pos = (mat*gl_Vertex).xyz; +	 +	vec4 norm = gl_Vertex; +	norm.xyz += gl_Normal.xyz; +	norm.xyz = (mat*norm).xyz; +	norm.xyz = normalize(norm.xyz-pos.xyz); + +	vary_normal = norm.xyz; +			 +	gl_FrontColor = gl_Color; +	 +	gl_Position = gl_ProjectionMatrix*vec4(pos, 1.0); +} diff --git a/indra/newview/app_settings/shaders/class1/deferred/diffuseV.glsl b/indra/newview/app_settings/shaders/class1/deferred/diffuseV.glsl index bd58096317..03d3322cb6 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/diffuseV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/diffuseV.glsl @@ -4,6 +4,8 @@   * $LicenseInfo:firstyear=2007&license=viewerlgpl$   * $/LicenseInfo$   */ +  +#version 120  varying vec3 vary_normal; diff --git a/indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl index f53e15c6cc..3429877397 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl @@ -4,6 +4,8 @@   * $LicenseInfo:firstyear=2007&license=viewerlgpl$   * $/LicenseInfo$   */ +  +#version 120  #extension GL_ARB_texture_rectangle : enable diff --git a/indra/newview/app_settings/shaders/class1/deferred/fullbrightV.glsl b/indra/newview/app_settings/shaders/class1/deferred/fullbrightV.glsl index dc8b2c6be4..6c38d220e2 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/fullbrightV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/fullbrightV.glsl @@ -4,6 +4,8 @@   * $LicenseInfo:firstyear=2007&license=viewerlgpl$   * $/LicenseInfo$   */ +  +#version 120  void calcAtmospherics(vec3 inPositionEye); diff --git a/indra/newview/app_settings/shaders/class1/deferred/giF.glsl b/indra/newview/app_settings/shaders/class1/deferred/giF.glsl index e64e29a0d2..75b555e8ae 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/giF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/giF.glsl @@ -4,6 +4,8 @@   * $LicenseInfo:firstyear=2007&license=viewerlgpl$   * $/LicenseInfo$   */ +  +#version 120  #extension GL_ARB_texture_rectangle : enable diff --git a/indra/newview/app_settings/shaders/class1/deferred/giV.glsl b/indra/newview/app_settings/shaders/class1/deferred/giV.glsl index 543527612e..8dc1410ea5 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/giV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/giV.glsl @@ -4,6 +4,8 @@   * $LicenseInfo:firstyear=2007&license=viewerlgpl$   * $/LicenseInfo$   */ +  +#version 120  varying vec2 vary_fragcoord; diff --git a/indra/newview/app_settings/shaders/class1/deferred/impostorF.glsl b/indra/newview/app_settings/shaders/class1/deferred/impostorF.glsl index 7f365fedc8..7125d845d9 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/impostorF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/impostorF.glsl @@ -4,6 +4,8 @@   * $LicenseInfo:firstyear=2007&license=viewerlgpl$   * $/LicenseInfo$   */ +  +#version 120  uniform sampler2D diffuseMap;  uniform sampler2D normalMap; diff --git a/indra/newview/app_settings/shaders/class1/deferred/impostorV.glsl b/indra/newview/app_settings/shaders/class1/deferred/impostorV.glsl index 4fc27d4412..37148b3f1a 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/impostorV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/impostorV.glsl @@ -4,6 +4,8 @@   * $LicenseInfo:firstyear=2007&license=viewerlgpl$   * $/LicenseInfo$   */ +  +#version 120  void main()  { diff --git a/indra/newview/app_settings/shaders/class1/deferred/luminanceF.glsl b/indra/newview/app_settings/shaders/class1/deferred/luminanceF.glsl index acb3014d18..78df54d5dc 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/luminanceF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/luminanceF.glsl @@ -5,6 +5,8 @@   * $/LicenseInfo$   */ +#version 120 +  uniform sampler2DRect diffuseMap;  varying vec2 vary_fragcoord; diff --git a/indra/newview/app_settings/shaders/class1/deferred/luminanceV.glsl b/indra/newview/app_settings/shaders/class1/deferred/luminanceV.glsl index 6368def830..0c820bfc6c 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/luminanceV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/luminanceV.glsl @@ -5,6 +5,9 @@   * $/LicenseInfo$   */ +#version 120 + +  varying vec2 vary_fragcoord;  uniform vec2 screen_res; diff --git a/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl index 6fca08ae6a..c5ddf31ac0 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl @@ -5,6 +5,8 @@   * $/LicenseInfo$   */ +#version 120 +  #extension GL_ARB_texture_rectangle : enable  uniform sampler2DRect depthMap; diff --git a/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl index 43da16436b..22ed9dcd40 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl @@ -4,6 +4,8 @@   * $LicenseInfo:firstyear=2007&license=viewerlgpl$   * $/LicenseInfo$   */ +  + #version 120  #extension GL_ARB_texture_rectangle : enable diff --git a/indra/newview/app_settings/shaders/class1/deferred/pointLightV.glsl b/indra/newview/app_settings/shaders/class1/deferred/pointLightV.glsl index e056c3e896..8e74feb615 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/pointLightV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/pointLightV.glsl @@ -5,6 +5,8 @@   * $/LicenseInfo$   */ +#version 120 +  varying vec4 vary_light;  varying vec4 vary_fragcoord; diff --git a/indra/newview/app_settings/shaders/class1/deferred/postDeferredF.glsl b/indra/newview/app_settings/shaders/class1/deferred/postDeferredF.glsl index 650e1a91a8..7c89c01ea4 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/postDeferredF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/postDeferredF.glsl @@ -4,54 +4,124 @@   * $LicenseInfo:firstyear=2007&license=viewerlgpl$   * $/LicenseInfo$   */ +  +#version 120  #extension GL_ARB_texture_rectangle : enable  uniform sampler2DRect diffuseRect; -uniform sampler2DRect localLightMap; -uniform sampler2DRect sunLightMap; -uniform sampler2DRect giLightMap; -uniform sampler2D	  luminanceMap; -uniform sampler2DRect lightMap; +uniform sampler2DRect edgeMap; +uniform sampler2DRect depthMap; +uniform sampler2DRect normalMap; +uniform sampler2D bloomMap; -uniform vec3 lum_quad; -uniform float lum_lod; -uniform vec4 ambient; - -uniform vec3 gi_quad; +uniform float depth_cutoff; +uniform float norm_cutoff; +uniform float focal_distance; +uniform float blur_constant; +uniform float tan_pixel_angle; +uniform float magnification; +uniform mat4 inv_proj;  uniform vec2 screen_res; +  varying vec2 vary_fragcoord; -void main()  +float getDepth(vec2 pos_screen)  { -	vec2 tc = vary_fragcoord.xy; -	vec3 lum = texture2DLod(luminanceMap, tc/screen_res, lum_lod).rgb; -	float luminance = lum.r; -	luminance = luminance*lum_quad.y+lum_quad.z; +	float z = texture2DRect(depthMap, pos_screen.xy).a; +	z = z*2.0-1.0; +	vec4 ndc = vec4(0.0, 0.0, z, 1.0); +	vec4 p = inv_proj*ndc; +	return p.z/p.w; +} -	vec4 diff = texture2DRect(diffuseRect, vary_fragcoord.xy); +void dofSample(inout vec4 diff, inout float w, float fd, float x, float y) +{ +	vec2 tc = vary_fragcoord.xy+vec2(x,y); +	float d = getDepth(tc); +	 +	float wg = 1.0; +	//if (d < fd) +	//{ +	//	diff += texture2DRect(diffuseRect, tc); +	//	w = 1.0; +	//} +	if (d > fd) +	{ +		wg = max(d/fd, 0.1); +	} +	 +	diff += texture2DRect(diffuseRect, tc+vec2(0.5,0.5))*wg*0.25; +	diff += texture2DRect(diffuseRect, tc+vec2(-0.5,0.5))*wg*0.25; +	diff += texture2DRect(diffuseRect, tc+vec2(0.5,-0.5))*wg*0.25; +	diff += texture2DRect(diffuseRect, tc+vec2(-0.5,-0.5))*wg*0.25; +	w += wg; +} -	float ambocc = texture2DRect(lightMap, vary_fragcoord.xy).g; -			 -	vec3 gi_col = texture2DRect(giLightMap, vary_fragcoord.xy).rgb; -	gi_col = gi_col*gi_col*gi_quad.x + gi_col*gi_quad.y+gi_quad.z*ambocc*ambient.rgb; -	gi_col *= diff; +void dofSampleNear(inout vec4 diff, inout float w, float x, float y) +{ +	vec2 tc = vary_fragcoord.xy+vec2(x,y); +		 +	diff += texture2DRect(diffuseRect, tc); +	w += 1.0; +} + +void main()  +{ +	vec3 norm = texture2DRect(normalMap, vary_fragcoord.xy).xyz; +	norm = vec3((norm.xy-0.5)*2.0,norm.z); // unpack norm -	vec4 sun_col =	texture2DRect(sunLightMap, vary_fragcoord.xy); -	vec3 local_col = texture2DRect(localLightMap, vary_fragcoord.xy).rgb; +	vec2 tc = vary_fragcoord.xy; +	 +	float sc = 0.75; +	 +	float depth; +	depth = getDepth(tc); +	vec4 diff = texture2DRect(diffuseRect, vary_fragcoord.xy); +	 +	{ //pixel is behind far focal plane +		float w = 1.0; -	sun_col *= 1.0/min(luminance, 1.0); -	gi_col *= 1.0/luminance; +		sc = (abs(depth-focal_distance)/-depth)*blur_constant; -	vec3 col = sun_col.rgb+gi_col+local_col; -	 -	gl_FragColor.rgb = col.rgb; -	col.rgb = max(col.rgb-vec3(1.0,1.0,1.0), vec3(0.0, 0.0, 0.0));  -	 -	gl_FragColor.a = 0.0; // max(dot(col.rgb,col.rgb)*lum_quad.x, sun_col.a); +		sc /= magnification; +		 +		// tan_pixel_angle = pixel_length/-depth; +		float pixel_length =  tan_pixel_angle*-focal_distance; +		 +		sc = sc/pixel_length; +		 +		//diff.r = sc; +		 +		sc = min(abs(sc), 8.0); +		 +		//sc = 4.0; +		 +		float fd = depth*0.5f; +		 +		while (sc > 1.0) +		{ +			dofSample(diff,w, fd, sc,sc); +			dofSample(diff,w, fd, -sc,sc); +			dofSample(diff,w, fd, sc,-sc); +			dofSample(diff,w, fd, -sc,-sc); +			 +			sc -= 0.5; +			float sc2 = sc*1.414; +			dofSample(diff,w, fd, 0,sc2); +			dofSample(diff,w, fd, 0,-sc2); +			dofSample(diff,w, fd, -sc2,0); +			dofSample(diff,w, fd, sc2,0); +			sc -= 0.5; +		} +		 +		diff /= w; +	} +		 +	vec4 bloom = texture2D(bloomMap, vary_fragcoord.xy/screen_res); +	gl_FragColor = diff + bloom; -	//gl_FragColor.rgb = vec3(lum_lod);  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/postDeferredV.glsl b/indra/newview/app_settings/shaders/class1/deferred/postDeferredV.glsl index 0ec81dcb02..12983baa94 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/postDeferredV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/postDeferredV.glsl @@ -4,6 +4,8 @@   * $LicenseInfo:firstyear=2007&license=viewerlgpl$   * $/LicenseInfo$   */ +  +#version 120  varying vec2 vary_fragcoord;  uniform vec2 screen_res; diff --git a/indra/newview/app_settings/shaders/class1/deferred/postgiF.glsl b/indra/newview/app_settings/shaders/class1/deferred/postgiF.glsl index e8e58f50e1..63b3c9f205 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/postgiF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/postgiF.glsl @@ -4,6 +4,8 @@   * $LicenseInfo:firstyear=2007&license=viewerlgpl$   * $/LicenseInfo$   */ +  +#version 120  uniform sampler2DRect depthMap;  uniform sampler2DRect normalMap; diff --git a/indra/newview/app_settings/shaders/class1/deferred/postgiV.glsl b/indra/newview/app_settings/shaders/class1/deferred/postgiV.glsl index e5f6217644..ae57227fe5 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/postgiV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/postgiV.glsl @@ -4,6 +4,8 @@   * $LicenseInfo:firstyear=2007&license=viewerlgpl$   * $/LicenseInfo$   */ +  +#version 120  varying vec2 vary_fragcoord;  uniform vec2 screen_res; diff --git a/indra/newview/app_settings/shaders/class1/deferred/shadowF.glsl b/indra/newview/app_settings/shaders/class1/deferred/shadowF.glsl index 378a3295ec..6674c4a5aa 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/shadowF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/shadowF.glsl @@ -4,6 +4,8 @@   * $LicenseInfo:firstyear=2007&license=viewerlgpl$   * $/LicenseInfo$   */ +  +#version 120  uniform sampler2D diffuseMap; diff --git a/indra/newview/app_settings/shaders/class1/deferred/shadowV.glsl b/indra/newview/app_settings/shaders/class1/deferred/shadowV.glsl index 666f909f01..db3bddc6be 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/shadowV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/shadowV.glsl @@ -4,6 +4,8 @@   * $LicenseInfo:firstyear=2007&license=viewerlgpl$   * $/LicenseInfo$   */ +  +#version 120  varying vec4 post_pos; diff --git a/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl index 5fbeceba81..29340c7e9f 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl @@ -4,6 +4,8 @@   * $LicenseInfo:firstyear=2007&license=viewerlgpl$   * $/LicenseInfo$   */ +  +#version 120  #extension GL_ARB_texture_rectangle : enable @@ -268,14 +270,10 @@ void main()  	vec4 diffuse = texture2DRect(diffuseRect, tc);  	vec4 spec = texture2DRect(specularRect, vary_fragcoord.xy); -	vec2 scol_ambocc = texture2DRect(lightMap, vary_fragcoord.xy).rg; -	float scol = max(scol_ambocc.r, diffuse.a);  -	float ambocc = scol_ambocc.g; -	 -	calcAtmospherics(pos.xyz, ambocc); +	calcAtmospherics(pos.xyz, 1.0);  	vec3 col = atmosAmbient(vec3(0)); -	col += atmosAffectDirectionalLight(max(min(da, scol), diffuse.a)); +	col += atmosAffectDirectionalLight(max(min(da, 1.0), diffuse.a));  	col *= diffuse.rgb; @@ -285,7 +283,7 @@ void main()  		//  		vec3 refnormpersp = normalize(reflect(pos.xyz, norm.xyz));  		float sa = dot(refnormpersp, vary_light.xyz); -		vec3 dumbshiny = vary_SunlitColor*scol_ambocc.r*texture2D(lightFunc, vec2(sa, spec.a)).a; +		vec3 dumbshiny = vary_SunlitColor*texture2D(lightFunc, vec2(sa, spec.a)).a;  		/*  		// screen-space cheap fakey reflection map diff --git a/indra/newview/app_settings/shaders/class1/deferred/softenLightV.glsl b/indra/newview/app_settings/shaders/class1/deferred/softenLightV.glsl index 9d187b46e2..8f0bcca76b 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/softenLightV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/softenLightV.glsl @@ -4,6 +4,8 @@   * $LicenseInfo:firstyear=2007&license=viewerlgpl$   * $/LicenseInfo$   */ +  +#version 120  uniform vec2 screen_res; diff --git a/indra/newview/app_settings/shaders/class1/deferred/sunLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/sunLightF.glsl index d4d686bbb7..00093836a2 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/sunLightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/sunLightF.glsl @@ -4,6 +4,8 @@   * $LicenseInfo:firstyear=2007&license=viewerlgpl$   * $/LicenseInfo$   */ +  +#version 120  //class 1, no shadow, no SSAO, should never be called diff --git a/indra/newview/app_settings/shaders/class1/deferred/sunLightSSAOF.glsl b/indra/newview/app_settings/shaders/class1/deferred/sunLightSSAOF.glsl index cdbed4b791..1e0693d19f 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/sunLightSSAOF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/sunLightSSAOF.glsl @@ -4,6 +4,8 @@   * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.   * $License$   */ +  +#version 120  #extension GL_ARB_texture_rectangle : enable diff --git a/indra/newview/app_settings/shaders/class1/deferred/sunLightV.glsl b/indra/newview/app_settings/shaders/class1/deferred/sunLightV.glsl index 9d092d9cea..9beb513ad8 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/sunLightV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/sunLightV.glsl @@ -4,6 +4,8 @@   * $LicenseInfo:firstyear=2007&license=viewerlgpl$   * $/LicenseInfo$   */ +  +#version 120  varying vec4 vary_light;  varying vec2 vary_fragcoord; diff --git a/indra/newview/app_settings/shaders/class1/deferred/terrainF.glsl b/indra/newview/app_settings/shaders/class1/deferred/terrainF.glsl index 9ba508a30c..0edae47918 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/terrainF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/terrainF.glsl @@ -4,6 +4,8 @@   * $LicenseInfo:firstyear=2007&license=viewerlgpl$   * $/LicenseInfo$   */ +  +#version 120  uniform sampler2D detail_0;  uniform sampler2D detail_1; diff --git a/indra/newview/app_settings/shaders/class1/deferred/terrainV.glsl b/indra/newview/app_settings/shaders/class1/deferred/terrainV.glsl index 789e53b789..a6163063be 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/terrainV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/terrainV.glsl @@ -4,6 +4,8 @@   * $LicenseInfo:firstyear=2007&license=viewerlgpl$   * $/LicenseInfo$   */ +  +#version 120  varying vec3 vary_normal; diff --git a/indra/newview/app_settings/shaders/class1/deferred/treeF.glsl b/indra/newview/app_settings/shaders/class1/deferred/treeF.glsl index 1c1725a95c..c54d9a1e3e 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/treeF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/treeF.glsl @@ -4,6 +4,8 @@   * $LicenseInfo:firstyear=2007&license=viewerlgpl$   * $/LicenseInfo$   */ +  +#version 120  uniform sampler2D diffuseMap; diff --git a/indra/newview/app_settings/shaders/class1/deferred/treeV.glsl b/indra/newview/app_settings/shaders/class1/deferred/treeV.glsl index 45832e350f..29689ecbaf 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/treeV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/treeV.glsl @@ -4,6 +4,8 @@   * $LicenseInfo:firstyear=2007&license=viewerlgpl$   * $/LicenseInfo$   */ +  +#version 120  varying vec3 vary_normal; diff --git a/indra/newview/app_settings/shaders/class1/deferred/waterF.glsl b/indra/newview/app_settings/shaders/class1/deferred/waterF.glsl index ea531de24a..e76f598d09 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/waterF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/waterF.glsl @@ -4,6 +4,8 @@   * $LicenseInfo:firstyear=2007&license=viewerlgpl$   * $/LicenseInfo$   */ +  +#version 120  #extension GL_ARB_texture_rectangle : enable diff --git a/indra/newview/app_settings/shaders/class1/deferred/waterV.glsl b/indra/newview/app_settings/shaders/class1/deferred/waterV.glsl index e002d75ebe..649e392630 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/waterV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/waterV.glsl @@ -4,6 +4,8 @@   * $LicenseInfo:firstyear=2007&license=viewerlgpl$   * $/LicenseInfo$   */ +  +#version 120  void calcAtmospherics(vec3 inPositionEye); | 
