1.1 Introduction
for at least ten years, opengl has been used in the first computer graphics course taught to students in computer science and engineering, other branches of engineering, mathematics, and the sciences. whether the course stresses basic graphics principles or takes a programming approach, 这句啥意思,stress 压力 opengl provides students with an api to support their learning. one of the many features of the opengl api that makes it popular for teaching is its stability and backward compatibility. hence, instructors needed to make only minor changes in their courses as opengl evolved. at least that used to be true: over the last few years, opengl has changed rapidly and dramatically.
starting with version 3.1, the fixed function pipeline was eliminated, an action that deprecated immediate mode and many of the familiar opengl functions and state variables. every application must provide at least a vertex shader and a fragment shader. for those of us who use opengl to teach our graphics course, these changes and the introduction of three additional shader stages in subsequent releases of opengl have led to a reexamination of how we can best teach computer graphics. as the authors of a popular textbook[Angel 09] used for the first course, we realized that this reexamination was both urgent and deep, requiring input from