Laborations

Labs are mandatory. You may prepare them in other time and place, but your results should be demonstrated at ordinary lab time. So if you plan to do the labs at home, sign up for at least one lab and demonstrate them all there - and be ready to do corrections. It is common that such "homework" has a couple of minsunderstandings that the lab assistant will sort out for you.

All labs are programming labs done in C. (We are, however, working on some alternative paths.)

We work under CentOS. This is a Linux distribution which is pretty nice. We expect that most of you will compile and run from the command-line, but if you prefer an IDE like Kdevelop (which is available in the lab) or even work on another OS, we will not stop you, as long as you can show us the source-code and demonstrate the results. And of course, working on your own laptops is perfectly fine and we will do what we can to support you. Linux users should work just as if they used the lab computers. Mac users have several options, command-line, Xcode, or an experimental educational environment that I very much would like your feedback on(see lab 1). We will also support Microsoft users, where Umapathi is the expert. (I plan to upload an example project ASAP.)

Most of the lab material is not yet available for 2012! All labs are being revised for OpenGL 3.2 which will change both the contents and the support material.

Here are links to the lab material for each lab (2012 version):

Lab 1: Introduction to OpenGL

Lab 2: Texture and viewing

Lab 3: Virtual world, specular shading, multitexturing

Lab 4: Terrain rendering

Lab 3 and 4 labs are at two separate occasions, tuesday and thursday. Thursday's are popular so for that you must reserve a seat or you can not do it in Olympen. For tuesdays, it will work anyway, but we appriciate if you note your planned presence since it helps us to plan.

The labs are slightly overbooked so we can't quite fit all students that are signed up for the course. However, I expect this problem to solve itself since some students will work on their own computers and will not need to be in the labs all the time. The first lab showed this to be true, it wasn't a big problem.

 

IMPORTANT

Deadline for labs: There are extra lab sessions. Officially, when the labs finish is the deadline. There may take some time until there is another opportunity to demonstrate your results (some time in VT2) but after the lab ends, your chance to get assistance is highly limited.
 


For Mac users

For Mac users, there is a special package here:

lab1mac.zip

This package is intended for the Lightweight IDE, which is at this time Mac only (regrettably). You need no makefile. When moving to the next assignment, just copy the source file, and duplicate the Resources folder to match it. (You don't have to rename shaders at all, since they simply follow the resourses folder.) So when moving from 1 to 2, make a copy of lab1-1.c to lab1-2c, and lab1-1 Resources to lab1-2 Resources. (And if you have any problems about the IDE, ask me.)

You need to use MacOSX 10.7, with Xcode installed. This (so far unofficial) version of Lightweight IDE fixes a bug in drag-and-drop under Lion:

Lightweight-IDE-093plus.zip

Included is also MicroGlut, a simple GLUT replacement since GLUT isn't updated for 3.2. Some calls are missing at this time. It should also be possible to use FreeGLUT but that requires and extra installation.

For Microsoft users

For Microsoft Window users, we have prepared a Visual Studio project (by Umapathi Tallapragada).

openGL3Example-vs.rar

You also need the GLEW library 1.5.

There are, of course, many other ways to develop under Microsoft Windows but I hope you understand that we can't support them all.

Old labs

Here are links to the lab material for each lab (2011 version):

Lab 1: Introduction to OpenGL (old version)

Lab 2: A simple virtual world in OpenGL (old version)

Lab 3: Shader programming in OpenGL

Lab 4: Terrain rendering

If you took the course earlier years, you can find the labs from 2007 and 2006 on the old course page.