Opengl Programming Guide by Opengl Architecture Review Board, Dave Shreiner & The Khronos Opengl Arb Working Group