To get you started
This lab is just to get you started, to figure out the computing
equipment etc. and will NOT be graded.
The best thing to do at this point is work through some OpenGL tutorials or examples. It's not a bad idea to read through the textbook or see what kind of online tutorials you find. If you find some great ones, please let your peers know through the class mailing list.
There are a couple of things that you should understand and learn
during this process:
OK - I hope this helps. Please ask, if something isn't working or you
are stuck or you have other problems. Ask your fellow students, ask us
(the TA and myself). Also, if you find better tutorials or something
wrong with the tutorials above, let EVERYONE know, so your fellow
students don't waste the same time. Please make
posting to the class list
your first choice! Thanks.
Unix is an important operating system that will not go away anytime soon.
"unix tutorial" in your favorite search engine and you'll find tons
This may be
a good one.
Emacs is a powerful text editor within which you can do many things,
like debugging, reading email and news and who knows what else. The
sky is the limit :) All it's functions can be extended by yourself
(using Lisp) and hence there are no limits in customizing it.
However the learning curve is a little steep in the beginning. You
can certainly use other text editors (like vi, jot, edit, etc.).
There is plenty of information online.
reference guide might come in handy.
You can find the
This will occupy some of your time. The main thing is to have a plan on how to debug your
program. Start simple and build your program step-by-step, so you
can debug each step and figure out whether there are errors in each
step before you move on. Always use simple data sets at first!
In terms of UNIX debuggers - the standard is gdb.
This is certainly a
worthwhile debugger to check out. A little bit more sophisticated is
ddd (which is an interface to gdb), which is also installed on
the graphics machines. Have a look at it.
Check it out. You
might also find
of use. It has other interesting UNIX/Linux links.
In order to get everything to run you should use makefiles. Although
it might not seem like it in the beginning, they simplify things.
Here is a simple makefile, that
should work (adapted to your files) in the CSIL environment. If you
have questions, please check out the
man page of make
(or just type man make at your UNIX prompt) or some
or you can just ask the class list.
(Don't waste too much time writing sophisticated makefiles at this point.
Just use and understand the one I provide you here.)
People like development environments for their ease of use. Be careful though, you need to submit a simple makefile with your code, that will be used to compile your program!! No IDE is being used to compile your code.
This being said, kdevelop is installed on the lab machines. eclipse is another popular one and has c/c++ extensions (all of which are installed in CSIL).
Of course the purpose is to figure out OpenGL! There is tons of stuff online. You should bookmark this site.
However, in this class we will focus on OpenGL 3.x and most of the online tutorials are talking about OpenGL 2.x. Hence, thus far, I recommend to
have the OpenGL Superbible, 5th edition handy. You need the 5th edition in order
to do OpenGL 3.x. Courtesy to Tom Torsney-Weir, there are a couple of good online tutorials. There is a short one and a longer one.
Please be aware that there are some modifications that need to be done to get it all working on a specific OS. Your code has to run on the linux computers in the CSIL lab! If it doesn't, you'll get zero points.
Some of you might still be interested in a software version of OpenGL, which is called MESA. Also, keep the reference card handy. I am also providing some sample code, that does run in the CSIL lab.
You read about the purpose of GLUT in Angel's book. The entry point
for GLUT information is
site. However, please try to use freeglut whenever possible.
This is just this neat little user interface utility, that is very
minimal, operating system independent (like the rest of C++, OpenGL,
and GLUT) that I find worthwhile to get to know. It's installed on
the graphics machines in CSIL. Check it out
Graham Wilson's (jgwilson at sfu dot ca)
comments on emacs along with his
.Xdefaults file and his
Matt Olson pointed out this
site for useful OpenGL tutorials.
Brandon Okert was kind enough to write up a little
guide on how to get OpenGL
installed with hardware drivers on Ubuntu. (updated on Jan 23, 2010).
Last modified: September 2011
Torsten Möller /
torsten at sfu . ca