Computer Graphics Through OpenGL: From Theory to Experiments, Second Edition Chapter 3
*Bug in text – Fig. 3.1(b) should be wireframe. Figure 3.1: Screenshots of squareAnnulus1.cpp*.
Figure 3.2: Square ann- ulus (z coordinates all 0).
Figure 3.3: Screenshot of squareAnnulusAnd- Triangle.cpp.
Figure 3.4: Logical representation of data in vertex arrays.
Figure 3.5: Screenshot of squareAnnulusVBO.cpp.
Figure 3.6: Screenshot of helixList.cpp.
Figure 3.7: Screenshot of multipleLists.cpp.
Figure 3.8: Bitmapped versus stroke text.
Figure 3.9: Screenshot of fonts.cpp.
Figure 3.10: Screenshot of mouse.cpp.
Figure 3.11: Mouse event coordinates (x, y).
Figure 3.12: Screenshot of menus.cpp.
Figure 3.13: Screenshot of lineStipple.cpp.
Figure 3.14: (a) Line stipple specified by glLineStipple(1, 0x5555) (b) Line stipple specified by glLineStipple(5, 0x5555).
Figure 3.15: Screenshot of canvas.cpp.
Figure 3.16: Wireframe FreeGLUT objects.
Figure 3.17: A clipping plane clipping a plane in half.
Figure 3.18: Screenshot of clippingPlanes.cpp.
Figure 3.19: Screenshot of sphereInBox1.cpp with a corner clipped off.
Figure 3.20: Clipping a sphere to make a hemisphere: the clipped half is computed and suppressed.
Figure 3.21: Viewing frustum created by gluPerspective(fovy, aspect, near, far).
Figure 3.22: Section by the yz-plane (i.e., x = 0 plane) of the viewing frustum (bold) created by glFrustum(-5.0, 5.0, -5.0, 5.0, 5.0, 100.0).
Figure 3.23: Screenshots of hemisphere.cpp with the window squished and the projection statement (a) glFrustum(-5.0, 5.0, -5.0, 5.0, 5.0, 100.0) and (b) gluPerspective(90.0, (float)w/(float)h, 5.0, 100.0).
Figure 3.24: Viewport specified by glViewport(x, y, w, h).
Figure 3.25: Screenshot of viewports.cpp.
Figure 3.26: Screenshot of windows.cpp.