principia/data/shaders/cable.fp
2025-03-04 21:51:19 +01:00

22 lines
548 B
GLSL

UNIFORMS
varying mediump vec3 FS_eye;
varying mediump vec3 FS_normal;
VARYINGS
void main(void)
{
vec3 n = normalize(FS_normal);
float diffuse = clamp(dot(LIGHT, n)*_DIFFUSE, 0., 1.);
float ambient = _AMBIENT + .25*n.z;
vec4 color = vec4(.4, .4, .4, 1.);
vec3 e = normalize(FS_eye);
vec3 R = normalize(reflect(LIGHT, n));
float specular = pow(clamp(max(dot(R, e), .0), .0, 1.), 12.);
float shadow = SHADOW;
gl_FragColor = specular*vec4(.3, .3, .3, 1.)*shadow + shadow * color * diffuse + color * ambient;
}