From 56564957104fbeaa1ba41698275a28d18a194c29 Mon Sep 17 00:00:00 2001 From: taw27 Date: Wed, 6 Aug 2008 15:48:20 +0000 Subject: Take shininess into account in shaders git-svn-id: svn://cook.msm.cam.ac.uk:745/thrust3d/thrust3d@222 84d2e878-0bd5-11dd-ad15-13eda11d74c5 --- data/shaders/fill-light.frag | 3 ++- data/shaders/fill-light.vert | 2 ++ data/shaders/lighting.frag | 3 ++- data/shaders/lighting.vert | 2 ++ 4 files changed, 8 insertions(+), 2 deletions(-) (limited to 'data') diff --git a/data/shaders/fill-light.frag b/data/shaders/fill-light.frag index 6a7044e..249c881 100644 --- a/data/shaders/fill-light.frag +++ b/data/shaders/fill-light.frag @@ -22,6 +22,7 @@ uniform float alpha; varying vec3 col_ambi_diff; varying vec3 col_emit; +varying float shininess; void main() { @@ -51,7 +52,7 @@ void main() { R = normalize(-reflect(L, norm)); diff_fac = max(0.0, dot(normalize(light2vc).xyz, norm)); spec_fac = max(0.0, dot(R, E)); - spec_fac = pow(spec_fac, 80.0); + spec_fac = pow(spec_fac, shininess); diff = col_ambi_diff * gl_LightSource[2].diffuse.rgb * diff_fac; spec = gl_LightSource[2].specular.rgb * spec_fac; diff --git a/data/shaders/fill-light.vert b/data/shaders/fill-light.vert index bdcb844..1688820 100644 --- a/data/shaders/fill-light.vert +++ b/data/shaders/fill-light.vert @@ -16,6 +16,7 @@ varying vec3 light2vc; varying vec3 col_ambi_diff; varying vec3 col_emit; +varying float shininess; void main() { @@ -31,6 +32,7 @@ void main() { /* Material properties */ col_ambi_diff = gl_Color.rgb; col_emit = gl_FrontMaterial.emission.rgb; + shininess = gl_FrontMaterial.shininess; /* Coordinates */ gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0; diff --git a/data/shaders/lighting.frag b/data/shaders/lighting.frag index 1a20e89..e47108f 100644 --- a/data/shaders/lighting.frag +++ b/data/shaders/lighting.frag @@ -25,6 +25,7 @@ uniform float alpha; varying vec3 col_ambi_diff; varying vec3 col_emit; +varying float shininess; void main() { @@ -70,7 +71,7 @@ void main() { E = normalize(-pos); R = normalize(-reflect(L, norm)); spec_fac = max(0.0, dot(R, E)); - spec_fac = pow(spec_fac, 80.0); + spec_fac = pow(spec_fac, shininess); diff += col_ambi_diff * gl_LightSource[0].diffuse.rgb * spot * falloff * diff_fac; spec += vec3(1.0, 1.0, 1.0) * gl_LightSource[0].specular.rgb * spot * falloff * spec_fac; diff --git a/data/shaders/lighting.vert b/data/shaders/lighting.vert index 32aa176..0092d66 100644 --- a/data/shaders/lighting.vert +++ b/data/shaders/lighting.vert @@ -18,6 +18,7 @@ varying vec3 light2vc; varying vec3 col_ambi_diff; varying vec3 col_emit; +varying float shininess; void main() { @@ -39,6 +40,7 @@ void main() { /* Material properties */ col_ambi_diff = gl_Color.rgb; col_emit = gl_FrontMaterial.emission.rgb; + shininess = gl_FrontMaterial.shininess; /* Coordinates */ gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0; -- cgit v1.2.3