diff options
Diffstat (limited to 'data/light-pp.frag')
-rw-r--r-- | data/light-pp.frag | 9 |
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)); } |