Resources

Syllabus

The syllabus for this course is here.

Getting set up to do OpenGL programming

If you would like to write OpenGL programs on your own computer, you will need two things. First, you need to make sure that the OpenGL libraries and header files are installed with your programming system. In many programming systems, including Visual C++, OpenGL will be installed already. If you try to compile an OpenGL program and your compiler complains that it can not open the header file "GL/gl.h", you need to get the appropriate OpenGL header files and libraries. The best place to find these is the OpenGL web site.

The second piece you will need is the OpenGL utility kit, or glut. This is not typically installed, so you will need to obtain this. Here are the instructions for how to obtain and install glut for Visual C++.

  1. Click this link to download the files. Unzip the archive.
  2. Find the folder where you have visual C++ installed. For Visual Studio 6.0 the path to this folder will be c:\program files\microsoft visual studio\vc98. Copy the file named glut.h into the folder include\gl located inside the vc98 directory.
  3. Copy the file named glut32.lib into the lib folder inside the vc98 directory.
  4. Copy the glut32.dll file into the system32 directory inside your Windows directory.

If you need to obtain glut for some other platform, please see the GLUT downloads site.

Text web site

The web site for the text, including source code for all examples is here.

OpenGL reference

Documentation on OpenGL functions is available here.

Daily summary

Tuesday, March 27

We covered sections 2.1-2.4 and 3.1-3.4 in the text. You should read these sections.

Thursday, March 29

I finished chapter 3, did all of chapter 4, and section 5.2. You should read these sections.

Programming Assignment 1

Do case study 3.4 at the end of chapter 3. Write functions to generate rounded, pointed, and ogee arches. Write a program that uses those functions to draw the facade of a building. This assignment is due by the start of class on Thursday, April 5.

Tuesday, April 3

I finished chapter 5. Please finish reading that chapter.

Problem Set 1

4.4.7c, 4.5.9, 4.7.1b, 5.3.3, 5.3.11, and 5.5.1. These problems are due at the start of class on Tuesday, April 10.

Thursday, April 5 and Tuesday, April 10

Chapter 6. You should read all of chapter 6.

Problem Set 2

6.2.2, 6.3.1, 6.4.2, 6.5.14, and 6.5.20. These problems are due on Tuesday, April 17.

Programming Assignment 2

Do case study 6.8 at the end of chapter 6. Incorporate these vaults into a building and draw the building. This assignment is due on Tuesday, April 17.

Tuesday, April 10 and Thursday, April 12

Chapter 7

Thursday, April 12 through Thursday, April 19

Chapter 8

First Midterm Exam

The first midterm is coming up on Tuesday, April 24. Here is a list of topics for this exam.

Thursday, April 26

I went over solutions to the first midterm.

To give you a starting point for future programs I put together a couple of simple example programs. The first example is a minimal program that renders a cube with lighting and perspective effects. The second example uses a parametric representation to render a pointed dome.

Problem Set 3

7.4.8, 7.6.3, 8.2.4, 8.6.2, and 8.6.3. These problems are due on Tuesday, May 8.

Programming Assignment 3

Create a program that renders a stand of half a dozen or so asparagus shoots. Here are specific requirements for your program.

This assignment is due on Tuesday, May 8.

Tuesday, May 1

Chapter 9

Thursday, May 3 and Tuesday, May 10

Chapter 10 - reading is everything except section 10.10.

Tuesday, May 15

I showed my solution to programming assignment 3.

I talked about OpenGL evaluators and showed a number of examples. Discussion of the examples and further documentation on evaluators is available here, and projects for all the examples I showed are here.

Problem Set 4

9.4.2, 9.7.2, 10.4.7, 10.7.2, 10.7.9, and 10.11.5 parts a and b. These problems are due on Tuesday, May 22.

Programming Assignment 4

Create a program that renders a teapot made up of Bezier or NURBS surfaces. For hints and suggestions, see case study 10.8. This program is due on Tuesday, May 22.

Tuesday, May 15 through Tuesday, May 22

Chapter 12 - ray tracing

Second Midterm Exam

The second midterm is coming up on Thursday, May 24. The exam will cover chapters 7 through 10. Here is a list of topics to study in preparation for the exam.

Tuesday, May 29

I talked about the OpenGL extensions mechanism, showed how to load and use extensions, demonstrated some examples of extensions, and talked briefly about the OpenGL shading language. Here is a nice introductory discussion of OpenGL extensions. One resource that makes working with OpenGL extensions easier is GLEW, the OpenGL extension wrangler library. There is even a book (now somewhat dated) on OpenGL extensions.

Final Exam

The final exam is coming up on Monday, June 4 at 1:30. The exam will be comprehensive. Here is a list of ray tracing topics to know for the final.