Text this: Interactive computer graphics : a top-down approach with shader-based OpenGL / Edward Angel, Dave Shreiner.