Welcome to TSBK07!


This is the home page of TSBK07 Computer Graphics, a computer graphics course focused on real-time animations, parallel programming using graphics shaders, visualization and games.

The course starts from the basics, the mathematical foundations, and covers a wide diversity of topics, including vitals like shader programming, light and shading, texturing and visible surface detection, but also covers deeper topics like large world management, collision detection, fractals and ray-tracing.

We use modern OpenGL with GLSL in all laborations.

The course follows this model:

1) Lectures. Relatively passive learning, introducing theory and practice.

2) Laborations. Get active, learn how to do it yourself.

3) Project. Get creative! Make a project defined by yourself in communication with the course leader, go deeper into the topics that interest you the most.

Important notice! The course book is primarily sold by Bokakademin, but the number available there is limited. It can also be ordered from Amazon but that takes time. You are welcome to follow the course with the electronic version only but the book is cheap so you don’t have to choose that for economic reasons.

Latest news:

190619: The exam is now graded and sent to Ladok. I will now add bonus points to the best projects, and, of course report the project credits as well. I need to be careful with the bonus points though; This is the first time I do that in the new Ladok system so I must be careful so I don’t take one step too far so I can’t change any more.

190615: Examination is in progress, with 6 out of 8 parts done. However, question 2b will have to be re-examined. There was an ambiguity in the question that I will need to take into account, adding some points to some of you who have made a reasonable solution to, so to speak, the wrong problem.

190603: In the last minute, two more old exams were added to the archive with old exams.

190515: The last sessions are relocated to Hammingrummet.

190506: And yet another! Now everybody should fit!

190429: One more session open!

190416: Two updates of the “common” files: LoadTGA now ignores the origin of the image, which could prevent a TGA from loading. One memory leak fixed in loadobj.

190411: Project presentation sessions are now available!

190128: There are now more books at Bokakademin!

190128: Common” folder updated. (Not critical, just avoiding a warning.) Preliminary version working with Mac OSX 10.14 available separately.

190127: Lab 1 tested in Olympen and Southfork and we should be able to run the lab without problems. Also, I have found the problem with the new version that adapts to MacOSX 10.14, so now that code is also tested with he lab!

190123: Took down the link to the booking system. We will fit in two parallel sessions and we have assistans for it so we dont need it.

190115: A batch of books is now in Bokakademin!

190106: Welcome to TSBK07 Computer Graphics 2019! I am happy to that that we will have good staffing of the labs this spring, something that was a major problem last year. We also have brand new computers in one lab. Our dear old GTS 250 GPUs (insanely reliable and well performing old boards) are being replaced by GTX 1080 boards, so we can aim even higher with bigger projects, more objects on screen, higher detail so please take advantage of that.

You may have noticed that the course book is currently sold out at Bokakademin. This is due to an unresolved printing problem, but I have ordered a small number that should be available next week. If that works well, another batch will be available before the course start.


181106: The retake is graded and reported.

180615: Almost there I just finished grading the exam for one student who showed some particularly bad temper. But I understand. You didnt have a great time in that hot room. I should call it hot temper”. On the positive 

180614: I am now grading the very last part, part 8, and it feels good summing up to a pass, or even a top grade (two so far)! It will not be as nice to reach the ones who fail but I must grade them too.

So we do have some top performers, but I think we have a relatively large number of participants with not so good results, and I think we all know why. Some of you can just go for the retake in august, but i you are an exchange student, what I said below holds. Especially, qualifying for a few extra points is not so hard to handle.

180613: I am working hard on the exams. I tried to squeeze in examining the project reports in the gap between making the exam and getting it back, but our secretary was very fast so I got the exam earlier than expected. The better.

So now I am trying to finish the examination by the end of this week. You wrote it in rather uncormfortable weather, and here I am, understanding that completely. The temperature went up quite a bit in my office yesterday.

And I fear that your exam result will be lowered by the heat. Well, obviously it will. Most of all, I am concerned about the foreign students. You may not have any good opportunity for a second try. If this is a problem, contact me.

180529: Solutions/pointers/notes about last years exam is now online, in the folder with old exams. Here. Speaking of old exams, exams older than 2011 may have some references to calls like glPushMatrix and glRotate etc. Avoid! That is old, obsolete functions that we do not use any more.

180529: Things are piling up a bit more than expected so examination of your reports has to wait. Making a good exam is more important now.

180528: A student found an error in the book and the slides concerning sphere-polygon tests. Updated slides for lecture 12 has been uploaded. The problem was an incorrect definition that caused a sign error in the formula.

180518: All the project demonstration sessions are finished! Some projects were good, some awesome! Many of you have already handed in report and code. Next week: Lessons!

180508: Project demonstrations start tomorrow!

180503: Experimental SimpleFont2 uploaded here.

180420: Project demonstration sessions published!

180306: Lab results reported to Ladok. If you get a U there it does not mean that you failed, just that you havnt quite finished yet. So please dont give up, it is not too late.

180216: Booking system active!

180215: The next lab needs booking due to the different schedule! Booking page is coming ASAP!

180208: New common archive. The changes in the Linux and Windows versions below are included, as well as an update on the Mac version (application moves to front when lauched) plus support for a few more glutGet variables (window size and mouse position) in the Linux version. Since I still consider the changes below experimental, I also include the old versions for Windows and Linux, just in case. (Just make sure not to compile both the new and old version together, or you will get link errors.)

180206: Some changes in Lab 3. (You don’t have to change your solution if the change is relevant to what you have already done.)

180128: I have not booked Nollstället for Lab 2. With three more computers in Southfork (the ones that malfunctioned last time) there shouldn’t be a problem.

180125: New version of MicroGlut for Linux! I have found some workarounds for the problems that some of you experienced under Linux on your laptops. I could reproduce the problems and made some experiments. This version seems to do the job. However, it is a quick fix, with very limited testing, so we must consider it experimental for now:

experimental new MicroGlut

180213: Nollstället is now booked for all remaining labs. It might be needed for the last lab.

180122: Lab 1 has finished (that is, the session). The labs were crowded but not overcrowded. We could possibly work without Nollstället, but on the other hand, I like to have a bit of slack. If you didn’t finish completely, don’t worry, you can demonstrate on the next session.

180116: The seminar room “Nollstället” is booked as extra space for lab 1, for those of you working on laptops, to avoid too crowded labs. It is located right between Southfork and Olympen. I will open it at the beginning of the lab session. If it turns out to be needed I will book it for later labs as well.

180115: Welcome to the computer graphics course 2018!


171016: Uploaded the two latest primary exams.

170610: All project reports are now read and I have mailed the verdicts (that were overall positive). It was a bit faster to do than the exam. Results for both will go to LADOK as soon as possible.

170609: The exam is graded and reported in, and I will now handle the project reports, which had to wait for a while.

170518: The project presentations are now finished, and I am very happy with the results! There were many fine projects, and there are quite a few that have qualified for the bonus points already. Remember to hand in code and report no more than a week after your presentation!

170406: A major overhaul of the web pages and an update up pretty much all demos on the demo page have been completed! Nobody has said much about the new web pages. I hope that isn’t because you don’t want to hurt my feelings. Better a constructive comment now than too late on the course evaluation. It is much easier to change the layout now than before, so I can do it.

170420: Project demo sessions are now published! Also, the “common” files have been updated several times lately, and are now in a single place to avoid confusion.

170307: The lab course has ended. This means that you should get started with your projects. If your labs are not quite finished, you can still finish them but with less supervision.

170209: I am still ill, so I have to cancel the friday lecture.

170124: All labs are now updated to work with Linux Mint!

170116: Welcome to the computer graphics course 2017!

This page is maintained by Ingemar Ragnemalm