We will now study sets of sample programs illustrating many different typical graphics operations. The hope is that these will help to illustrate concepts, but not overly constrain your imagination. Specifically, you control both what the client sends to the GPU and how the GPU interprets this data, so you can do nearly anything you want.

As we study these various programs, we will see several common programming strategies, for example:

as well as various interactive techniques, for example:

These are best viewed as a collection of tools for you to use when, where, and how you see fit. Learn the techniques, but constantly try to imagine which ones might be useful to you (as is, or modified/enhanced in some way) in various specific contexts within your programs.

Two Prerequisites

1. GLSL

We will look a bit more closely at GLSL now. The first link in the Developer Notes section is to a basic GLSL Overview that we will examine. You will want to refer back to this page – as well as to other pages in the Developer Notes section – from time to time as you develop projects.

2. C++ Class versus Instance Variables and Methods

See this review of C++ class and instance methods and variables to refresh your memory on the differences and to see how our framework depends upon these ideas.

The Sample Program Sets

Macintosh OpenGL developers: Be sure to read the notes regarding the loading of dynamic libraries using the DYLD_LIBRARY_PATH environment variable in the Platform-Specific Notes page.