OpenGL Utility & Example Programs


Author, Designer and Project Maintainer: Stephen Manley - smanley@nyx.net

Here are some example openGL programs and C++ classes that you might find useful. I've tried to keep something of an object oriented approach to the design of the programs, as most of the examples I've seen are pretty much straight C. The utility classes that I use along with the GLUT main programs are also handy to cannibalize too, I do it all the time. All programs on this page are released freeware (more of my other code is GPL'd) and without liscence so you can gut them as you wish. A credit or link to my main page would be apprecated, though!

MazeMaker

Here is a program that you can use to make a 2D overview of a maze. You can select three different colors, draw them in the main view, load and save your files, etc. Lots of good introductory goodies here, like introductions to orthographic projections, mouse and file input, 3D OOP abstraction, etc. Download source.

MazeGen

This program generates a 3D maze from the 2D layout file that was generated in the mazemaker program. The maze is then animated to be spinning on it's Y-axis, with rotation and scaling controls available. There is a bug in my hidden wall removal code, so that's disabled in this example. If you fix it please let me know though! Download source. This example also demonstrates mouse scaling and rotation, along with the glut animate features. The mouse stuff doesn't work very well.

Walker

This program allows you to walk around the maze that was generated in the first section. Due to a small problem with the hidden wall removal algorithm, I just have it set up so that you can navigate around a checkerboard ceiling and world. This example demonstrates many nifty openGL features like camera and eye methedologies, camera rotation and translation, scene rotation, etc etc. Download source.

Camera

You should grab my C++ camera classes. The source file and header file are available online. Some of the cool features I have implemented:


Last Edited: 09/21/99
Created: 09/21/99
Maintained By: Stephen Manley - smanley@nyx.net