Advanced Graphics Programming Using Opengl by Tom Mcreynolds & David Blythe