KlassischeKeplerKriege/data/shader/gameobjects.frag

38 lines
1 KiB
GLSL
Raw Normal View History

#version 120
2016-09-29 02:24:14 +00:00
varying vec3 vertex;
varying vec3 normal;
varying vec3 lightDirection;
2016-09-29 02:24:14 +00:00
uniform vec3 lightColor;
uniform vec3 lightPosition;
uniform vec3 materialColor;
uniform int materialKind;
uniform int materialSeed;
2016-09-29 02:24:14 +00:00
void main()
{
2016-09-29 09:38:26 +00:00
vec3 Eye = normalize(-vertex);
vec3 Reflected = normalize(reflect( -lightPosition, normal));
2016-09-29 02:24:14 +00:00
vec3 IAmbient = vec3(0.05f);
if (materialKind == 6) {
// sun: shines by itself
gl_FragColor = vec4(materialColor, 1.0);
return;
}
2016-09-29 02:24:14 +00:00
2016-09-29 09:38:26 +00:00
// TODO: add noise texture
vec3 color = materialColor;
color = max(vec3(0.0), min(vec3(1.0), color));
vec3 IDiffuse = vec3(color) * lightColor * max(dot(normal, lightDirection), 0.0);
2016-09-29 09:38:26 +00:00
// TODO make instensity/exponent as parameter
//vec3 ISpecular = lightColor * 5.0 * pow(max(dot(Reflected, Eye), 0.0), 2.0);
//vec3 ISpecular = lightColor * pow(max(dot(Reflected, Eye), 0.0), 2.0);
2016-09-29 06:28:56 +00:00
//gl_FragColor = vec4((IAmbient + IDiffuse) + ISpecular, 1.0);
gl_FragColor = vec4((IAmbient + IDiffuse), 1.0);
2016-09-29 10:28:35 +00:00
}