Lecture plan

Since we have international students in the course, all lectures will be held in english.

1. Introduction, graphics systems, API's (Chapter 3)

2. 2D graphics (Chapter 5), OpenGL introduction

3. 3D transforms, 3D engines, Viewing, Projection (Chapter 6)

4. Introduction to visible surface detection (Chapter 12), polyhedra models (Chapter 8.1-8.4), light models, shading (Chapter 7)

5. Surface detail, texture mapping (Chapter 10)

6. More surface detail, texture mapping, multitexture, light mapping, bump mapping, environment mapping (Chapter 10),m skybox, Bump mapping (supplement)

7. More bump mapping (supplement), Normal matrix (Chapter 7), A bit more about shaders including multitexturing (Chapter 10 and 18).

8. Picking (supplement), Rotation around arbitrary axis (Chapter 6), Large worlds, high-level VSD.

9. Level of detail, Billboards (Chapter 13)

10. Curves and surfaces (Chapter 8.5-)

11. Spline continuity (Chapter 8.5-), Animation, Particle systems (Chapter 14)

12. Collision detection (Chapter 14)

13. Fractals and noise (Chapter 9), Anti-aliasing (Ch 16)

14. Ray-tracing and radiosity (Chapter 17) Line-drawing algorithms, polygon rendering (Chapter 15)

15. Loose ends. Advanced topics. OpenGL ES.

Note: Due to my illness after lecture 7, the plan will be messed up a bit. Material from lectures 10 and 11 were covered by Jens at lecture 8, and lecture 9 is cancelled. The rest will thus be somewhat reorganized - as little as possible, of course.

Lecture notes

Lecture slides will appear here, generally shortly before or after the lectures. If you want to check out the slides before the lecture, you can find old versions by the link below.

Note that some lecture notes are very few pages. That is simply when I have worked a lot on the whiteboard.

There may be overlap between the PDF's, when material has been included in the presentation for one lecture but delayed to the next.

PDFs from 2017 are here: pdf17

For code examples demonstrated at the lectures, look here:

The PFNP demo archive

Older lecture notes are at the old course page.

This page is maintained by Ingemar Ragnemalm