Ray Tracing Algorithm