Read the first five chapters in the OpenGL red book. Most of it should be read somewhat carefully, with the exception of the sections on vertex arrays in Chapter 2, and the details of color index mode in Chapter 4, both of which can be skimmed.
Modify the sierpinski2d.cpp program (which draws a Sierpinski Gasket as a sequence of midpoints between the last point and a random vertex), as follows: Originally show a clear window. The first three mouse clicks set the triangle boundaries. Clicking the left mouse button or pressing the space bar should cause the drawing to continue with a new random color; pressing ESC or clicking the right mouse button should bring up a little message box similar to what you see in many applications under Help|About. Also make sure the drawing is done in the idle callback, in bursts.
Write an OpenGL application to animate little spheres being shot out of a cone and falling through a torus.
Write an OpenGL application that features a circle moving slowly across the window. The circle should be stippled with a cross hatched pattern. The purpose of this problem is to show you how the stippling is relative to the screen coordinates and not to the object; if done properly, your animation should look funny — sort of like a flashlight being slowly waved across a wallpapered wall.
Write an OpenGL application to simulate walking through a grove of trees. The ground should be a very large — okay huge — rectangle on the xz plane, with a grassy texture mapped on it. Randomly place a bunch of trees (maybe 100 or so) on the ground. Each tree can be as simple as a brown cylinder of height 4 and radius 0.5 with a green sphere of radius 3 sitting on top of it. Simulate walking by moving the camera with the arrow keys (or the mouse if you want). The camera should simply hover 3 units above the ground. The up arrow key should walk forward and the left and right arrow keys can make 10 degree turns. Make the scene fairly dark with a small amount of ambient light, but make it look like the viewer is holding a bright flashlight (you'll have GL_SPOT_CUTOFF somewhere in your code).
Modify my ship class so that it includes an "autolander" method. The method should be parameterized with the location, size, and orientation of a runway. Do not worry about gravity. Simply decelerate from the current speed so that you stop at the end of the runway. If your initial speed is negative, do a backwards landing.