Provides step-by-step instruction on modern 3D graphics shader programming in OpenGL, along with its theoretical foundations. The book is appropriate both for computer science undergraduate graphics programming courses in degree programs that emphasize Java, and for professionals interested in mastering 3D graphics skills who prefer Java.