Real-time Shader Programming [with Cdrom] by Ron Fosner