diff options
-rw-r--r-- | data/light-pp.frag | 9 | ||||
-rw-r--r-- | data/light-pp.vert | 2 |
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; |