aboutsummaryrefslogtreecommitdiff
path: root/data/light-pp.frag
diff options
context:
space:
mode:
authortaw27 <taw27@bf6ca9ba-c028-0410-8290-897cf20841d1>2008-01-07 12:10:17 +0000
committertaw27 <taw27@bf6ca9ba-c028-0410-8290-897cf20841d1>2008-01-07 12:10:17 +0000
commit1ee5beff75915df1c9d30cf816ba41f49c734e99 (patch)
tree1f93cd63a8374e3c3d01ff2c97ecbcf2121bae51 /data/light-pp.frag
parentf68aaadb2c8b142432ccc7f57b60d250b2501417 (diff)
Improved shaders (downstream from synth3d)
git-svn-id: svn://cook.msm.cam.ac.uk:745/diff-tomo/dtr@240 bf6ca9ba-c028-0410-8290-897cf20841d1
Diffstat (limited to 'data/light-pp.frag')
-rw-r--r--data/light-pp.frag9
1 files changed, 6 insertions, 3 deletions
diff --git a/data/light-pp.frag b/data/light-pp.frag
index c862641..ca96990 100644
--- a/data/light-pp.frag
+++ b/data/light-pp.frag
@@ -12,6 +12,7 @@
varying vec4 col_ambi;
varying vec4 col_diff;
varying vec4 col_spec;
+varying vec4 col_emit;
varying float shininess;
varying vec3 normal;
@@ -31,10 +32,12 @@ void main() {
diff = col_diff * clamp(dot( vec3(normalize(gl_LightSource[0].position)), normal ), 0.0, 1.0);
/* Specular contribution */
- spec = col_spec * pow(dot( vec3(normal), halfvc ), shininess);
+ spec = col_spec * clamp(pow(dot( vec3(normal), halfvc ), shininess), 0.0, 1.0);
- gl_FragColor = ambi + diff + spec;
- gl_FragColor.a = 1.0;
+ gl_FragColor = vec4(min(col_emit.r + ambi.r + diff.r + spec.r, 1.0),
+ min(col_emit.g + ambi.g + diff.g + spec.g, 1.0),
+ min(col_emit.b + ambi.b + diff.b + spec.b, 1.0),
+ min(col_emit.a + ambi.a + diff.a + spec.a, 1.0));
}