Course information TNM061 2020

This document contains the information I want to convey for the start of the course. Further information will be provided for the next half-semester (VT2). The page with Current information will be updated as the course progresses.

The course is a direct continuation of the introductory course Computer Graphics (TNM046) for MT1, and its goal is to provide a wider and deeper insight into the field of computer graphics and its applications. The course provides the necessary prerequisites for several advanced level courses in the subject area. The course is also meant to provide a certain familiarity with animation and 3-D graphics as a medium of communication, and to present some typical common tools for 3-D graphics production.

Students in the Master's programme in Computer Science who have not taken the course TNM046 might possibly face a slightly tougher track to get up to speed on the underlying theory. Those of you who are taking this course without having TNM046 in your baggage, please contact me so we can set up a plan for what you should read and do in addition to the assignments in this course proper. The course is taught on half speed over the entire spring semester, so there is time to catch up.


The course centers around a series of lectures, presenting introductions and overviews of important subject areas, and a series of practical laboratory assignments, where we first walk through the fundamentals of 3-D modeling, animation and rendering using the commercial software package 3dsMax, and then perform some applied interactive 3-D graphics programming. The subject area is theoretically heavy, but also applied in a very concrete manner in various software tools for 3-D graphics, so the lectures will often present practical examples.

All lectures and lab sessions are scheduled for the first half semester, VT1. The course is taught on half speed across two half semesters, and the second half, VT2, is spent on a group project assignment. The idea is to provide a practical use case to which ou can apply your newfound knowledge and skills, and to allow you to dig deeper into the subject on your own, under supervision where appropriate. The project assignments will be presented orally and in writing at the end of the semester, at the end of May or beginning of June. Around that time, there will be a written exam as well, to test your understanding of the theory content of the course. The exam is scheduled already. For the project presentations, we will decide on a suitable date as we get to the end of the lecture series.



Because of an oversight on my behalf, the course book recommended in the central study guide is Hughes: Computer Graphics: Principles and Practice, Third Edition (Addison Wesley 2013). Unfortunately, that book is very extensive and detailed, a bit too advanced for a course on G2 level, and also expensive. For those who want a good book, I recommend instead the more recently published, less detailed and considerably less expensive Marschner, Shirley: Fundamentals of Computer Graphics, Fourth edition (CRC Press 2016). That is the recommended book also for the course TNM046 for MT1 from 2019 on.

Shirley's book is good an very useful, but not strictly required to pass the course. It is possible to get by with the book from earlier versions of TNM046, i.e. Steven Gortler: Foundations of 3D Computer Graphics, supplemented with a fair amount of extra material I have written myself to compensate for the shortcomings of that book. That material will be provided on the course page this year as well, even though the currently recommended book covers most of it.

The lecture plan below refers to relevant chapters in Shirley's book. Please note that large parts of the book have been covered in the course TNM046, and that some parts are not directly relevant to either course.

In case you already bought the book that was recommended in the official pages (Hughes), there is no cause for regret. It's a good, modern book which will serve you well in this course and later specialization courses in 3-D graphics. For this particular course, though, it's somewhat of an overkill.

Lab instructions and some supplementary material is subject to slight changes each year, and links will be posted on the course page for download as the course progresses.


The course has three mandatory parts:

For passing the course, all parts should have at least a "pass" grade.
A "pass" on both exam and project yields the final grade 3.
A "pass with mention" on either exam or project yields final grade 4.
A "pass with mention" on both the exam and the project yields final grade 5.

For adminstrative reasons, the grades "pass" and "pass with mention" are registered in Ladok as 3 and 5. The numbered grade 4 is not awarded on the parts. The final grade can therefore be regarded as the mean value of the two assignments with a scaled grading.

Lectures VT1 (possibly subject to change)

  1. Introduction to the course and the subject in its context. Mesh modelling. (Shirley chapter 12.1 and extra material)
  2. Modelling: Parametric curves and surfaces, implicit modelling, CSG. (Shirley chpater 15, 22.1, 22.5 and extra material)
  3. Materials and mappning: texture coordinates, reflection mapping, bump mapping (Shirley chapter 11.1-4 and extra material)
  4. Procedural textures and mer komplicated materials (Shirley chapter 11.5 and extra material)
  5. Illumination, reflection and shadows (Shirley chapter 10 (refresh) and 24 (cursory))
  6. Global illumination models, particuarly ray tracing (Shirley chapter 4, 13, 18, 23 and extra material)
  7. Animation (Shirley chapter 16 and extra material)
  8. Simulation (Shirley chapter 16 and extra material)
  9. Graphics programming: hierarchical transformations and scene graphs (Shirley chapter 12.2 and the lab pamphlet)
  10. Real time graphics and interaction, shading in modern graphics hardware (Shirley chapter 17 and separate material)
  11. Scene graphs and Three.js (Shirley chapter 12.2 and the lab pamphlet)
  12. Data structures for large scenes (Shirley chapter 12.3, 12.4, 25)
  13. Project information

Lab assignments VT1

  1. Introduction to 3dsMax, modelling
  2. Materials and textures
  3. Lights, shadows, reflection and refraction, rendering
  4. Animation and simulation
  5. Hierarchical transformations in OpenGL
  6. Graphics programming using scene graphs in Three.js

The lab assignments are supposed to be perfomed in groups of two. We have found that this provides the best situation for learning. You may think you work better alone, but that is very seldom the case. Working alone is not prohibited, but the lab does not have enough computers for everyone in a group of 30 students to have a computer to themselves. If you want to work alone, be prepared to use your own computer. Having more than two people in front of the same computer is not recommended, and that should not be needed. Working from home is perfectly possible, but a bit lonesome and boring. Your demonstration of the results should be performed in person to the lab assistant during scheduled hours in the lab.

The first lab assignment is short and simple on purpose, to give you the opportunity to properly acquaint yourselves with the complicated user interface of 3dsMax. This means that you are not supposed to just do the few simple tasks that are listed. Make sure to look around and test other parts of the software as well. Prepare properly for all lab sessions, so that there is time to finsih them and have them graded during the scheduled hours. There is a lot of work for everyone involved to demonstrate lab assignments after the sessions proper. Grading over e-mail will not be allowed. The final lab session is an extra slot to catch up if you did not finish something in time and need to show your results later. If needed, another extra session will be scheduled for the beginning of VT2.

The lab groups are large, and the lab assistants have limited capacity. Prepare reasonably well to perform the assignments without constant supervision, and try your best to work independently by using written documentation. If there is a long wait for help from the assistant, help is prioritized over grading. If you are done and there is a long wait for grading, feel free to leave and show your work at the beginning of the next session instead.

Welcome to the course!

Stefan Gustavson