Sprite Plane Coordinates: (gx, gy, gz) Normal Vector of Sprite Plane (nx, ny, nz) Normal Vector of Floor: (n2x, n2y, g2z) Position of Light: (lx, ly, lz) Angle to rotate Sprite Plane so that it points "as closely as possible" to Light is t: t -> -((2 (-gz n2y + lz n2y + gy n2z - ly n2z) (gy n2y nx - ly n2y nx + gz n2z nx - lz n2z nx - gy n2x ny + ly n2x ny - gz n2x nz + lz n2x nz) + 2 (-gy n2x + ly n2x + gx n2y - lx n2y) (-gx n2z nx + lx n2z nx - gy n2z ny + ly n2z ny + gx n2x nz - lx n2x nz + gy n2y nz - ly n2y nz) + 2 (gz n2x - lz n2x - gx n2z + lx n2z) (-gx n2y nx + lx n2y nx + gx n2x ny - lx n2x ny + gz n2z ny - lz n2z ny - gz n2y nz + lz n2y nz))/(2 ((-gy n2x + ly n2x + gx n2y - lx n2y)^2 + (gz n2x - lz n2x - gx n2z + lx n2z)^2 + (-gz n2y + lz n2y + gy n2z - ly n2z)^2) (-((2 (-gz n2y + lz n2y + gy n2z - ly n2z) (gy n2y nx - ly n2y nx + gz n2z nx - lz n2z nx - gy n2x ny + ly n2x ny - gz n2x nz + lz n2x nz) + 2 (-gy n2x + ly n2x + gx n2y - lx n2y) (-gx n2z nx + lx n2z nx - gy n2z ny + ly n2z ny + gx n2x nz - lx n2x nz + gy n2y nz - ly n2y nz) + 2 (gz n2x - lz n2x - gx n2z + lx n2z) (-gx n2y nx + lx n2y nx + gx n2x ny - lx n2x ny + gz n2z ny - lz n2z ny - gz n2y nz + lz n2y nz))^2/(4 ((-gy n2x + ly n2x + gx n2y - lx n2y)^2 + (gz n2x - lz n2x - gx n2z + lx n2z)^2 + (-gz n2y + lz n2y + gy n2z - ly n2z)^2)^2)) + ((gy n2y nx - ly n2y nx + gz n2z nx - lz n2z nx - gy n2x ny + ly n2x ny - gz n2x nz + lz n2x nz)^2 + (-gx n2z nx + lx n2z nx - gy n2z ny + ly n2z ny + gx n2x nz - lx n2x nz + gy n2y nz - ly n2y nz)^2 + (-gx n2y nx + lx n2y nx + gx n2x ny - lx n2x ny + gz n2z ny - lz n2z ny - gz n2y nz + lz n2y nz)^2 + (-gy n2x + ly n2x + gx n2y - lx n2y) (gy n2x - ly n2x - gx n2y + lx n2y - gy n2x nx^2 + ly n2x nx^2 + gx n2x nx ny - lx n2x nx ny - gy n2y nx ny + ly n2y nx ny + gx n2y ny^2 - lx n2y ny^2 - gy n2z nx nz + ly n2z nx nz + gx n2z ny nz - lx n2z ny nz) + (gz n2x - lz n2x - gx n2z + lx n2z) (-gz n2x + lz n2x + gx n2z - lx n2z + gz n2x nx^2 - lz n2x nx^2 + gz n2y nx ny - lz n2y nx ny - gx n2x nx nz + lx n2x nx nz + gz n2z nx nz - lz n2z nx nz - gx n2y ny nz + lx n2y ny nz - gx n2z nz^2 + lx n2z nz^2) + (-gz n2y + lz n2y + gy n2z - ly n2z) (gz n2y - lz n2y - gy n2z + ly n2z - gz n2x nx ny + lz n2x nx ny - gz n2y ny^2 + lz n2y ny^2 + gy n2x nx nz - ly n2x nx nz + gy n2y ny nz - ly n2y ny nz - gz n2z ny nz + lz n2z ny nz + gy n2z nz^2 - ly n2z nz^2))/((-gy n2x + ly n2x + gx n2y - lx n2y)^2 + (gz n2x - lz n2x - gx n2z + lx n2z)^2 + (-gz n2y + lz n2y + gy n2z - ly n2z)^2))))