See the Pen shadow by multiple lights by aadebdeb (@aadebdeb) on CodePen. #define PI 3.14159265359 #define TWO_PI PI * 2.0 #define HALF_PI PI / 2.0 precision mediump float; uniform float u_time; uniform vec2 u_mouse; uniform vec2 u_resolution; struct Camera { vec3 position; vec3 ray; }; struct Light { vec3 position; vec3 ambientWeight; vec3 diffuseWeight; vec3 specularWeight; }; float random(float