runnable fragment
code snippet
precision lowp float;
varying vec4 v_normal;
void main() {
// ambient lighting (global illuminance)
vec3 ambient = vec3(0.5, 0.5, 0.5); // color - grey
// diffuse (lambertian) lighting
// lightColor, lightSource, normal, diffuseStrength
vec3 normal = normalize(v_normal.xyz);
vec3 lightColor = vec3(1.0, 1.0, 1.0); // color - white
vec3 lightSource = vec3(1.0, 1.0, 1.0); // coord - (1, 0, 0)
float diffuseStrength = max(0.0, dot(lightSource, normal));