aboutsummaryrefslogtreecommitdiff
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
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
-rw-r--r--data/light-pp.frag9
-rw-r--r--data/light-pp.vert2
2 files changed, 8 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));
}
diff --git a/data/light-pp.vert b/data/light-pp.vert
index 02ff444..d01f135 100644
--- a/data/light-pp.vert
+++ b/data/light-pp.vert
@@ -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;
@@ -25,6 +26,7 @@ void main() {
col_ambi = gl_FrontMaterial.ambient;
col_diff = gl_FrontMaterial.diffuse;
col_spec = gl_FrontMaterial.specular;
+ col_emit = gl_FrontMaterial.emission;
shininess = gl_FrontMaterial.shininess;