Labs are mandatory. You should typically do them in groups of 2.

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, come to 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 misunderstandings that the lab assistant will sort out for you.

All labs are programming labs done in the C programming language, with new C++ versions as an option.

We work under Ubuntu. This is a Linux distribution which ISY mainly uses. We expect that most of you will compile and run from the command-line, but if you prefer an IDE like CodeBlocks 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, etc. We will also support Microsoft users, with some CodeBlocks based demos on the demo page.

A note on CodeBlocks: It is not a perfect IDE but one of the easiest to get the lab material to run in. It is available in the lab. However, a recent version was broken but I know a workaround, let me know if you need it. For Windows, CodeBlocks has the nice feature of building a makefile for you, so it can help even if you use another way to edit and compile.

The lab material is tested under Ubuntu, but updates may be needed if the OS is updated. Last minute changes are possible but they won't change anything dramatic, rather clarify and correct minor issues.

There four labs are as follows (see the menu for the pages for each:

Lab 1: Introduction to OpenGL

Lab 2: Texture and viewing

Lab 3: Virtual world, skybox, specular shading

Lab 4: Terrain rendering, multitexturing

Plus extra lab 1, 2 and 3 if you need more time. All labs are in three rooms in order to accomodate the duggas.

The labs are (mostly) scheduled mondays, 13-17, in Egypten, Asgård and Olympen. You do not have to sign up for the labs (but see below).

Note! Since we do not fit in Egypten, Asgård and Olympen, I initially booked Nollstället as emergency. This was a temporary solution, and I hope to have a suitable lab booked by monday. Currently we have Muxen 2 booked, but that one is impratical so I have asked for another one. Nollstället is still booked for monday 28/1, but my hope is that we can replace that with an a computer lab.

I am sorry for this inconvenience but the number of participants unexpectedly went up right at the start of the course, and I have done what I can do to handle this. Hopefully this will be finalized by lab 2.

Lab duggas:

On most labs (TSBK07 and TSBK11 only), there is a small written examination, a “dugga”. Important: These do not directly relate to the lab material but to the lectures and corresponding parts of the course book.

The duggas will be different between TSBK07 and TSBK11. We will assume that students in Egypten are taking TSBK11 and TSBK07 for the other labs, so if you are not following that scheme, please make sure that you get the right dugga.

Week 4: Dugga 1, on the material covered in lecture 1-3. (Chapters 3, 4.1 to 4.6, 5, 6.1 to 6.2, 6.4 to 6.8)

Week 5: Dugga 2, on the material covered in lecture 4-5. (Chapters 7 except 7.11, 8.1, 10.1, 10.5, 12.1-12.3, 18)

Week 6: Dugga 3, on the material covered in lecture 6-7. (Chapters 4.10, 7.11, 10.2-10.10 except 10.7, 12.4-12.5. Ray marching not included!)

Week 7: Dugga 4, on the material covered in lecture 8-9. (Chapters 6.3, 6.9, 6.10, 13.1, 13.4-13.10, 17.2)

Week 8: No dugga!

Week 9: Dugga 5, on the material covered in lecture 10-12.(Chapter 8.5-, 9.1-9.5, 14 + supplement).

Week 10: Omdugga, retake on all duggas above (but not exactly the same questions.) Important: These will also include questions on the material covered in lecture 13-14.


Deadline for labs: There are extra lab sessions on three mondays following the four "main" lab sessions. Officially, when the labs finish is the deadline. The course doesn’t end so there are possibilities to finish later, but it may take some time until there is another opportunity to demonstrate your results (some time in VT2) and after the lab series ends, your chance to get assistance is highly limited.

Other operating systems

We use Linux in the lab, but it is perfectly possible to use other operating systems. Look here for some advice:

Other operating systems

This page is maintained by Ingemar Ragnemalm