background shader now scales correctly when the window is resized
moved some math functions to a separate header to clean up the kernel code