Graphics Programming (Autumn 2019)
Official course description:
Course info
Programme
Staff
Course semester
Exam
Abstract
Students attending this course will be able to implement core algorithms of Computer Graphics.
Description
Computer graphics is used to visualise data in video games, virtual & augmented reality, simulations, and many other areas, like medicine and data visualisation. This course provides an overview over the most important concepts of 3D computer graphics.
Students implement the major components of a traditional projective rendering pipeline:
- model and viewing transformations
- perspective projection
- Gouraud and Phong shading
- shaders
- texture mapping and bump mapping
In addition, the student will be supervised in the acquisition of specialized knowledge in the graphics-programming area of their choice. Example topics include:
- parameterized surfaces
- physically based rendering
- particle systems
- voxel rendering
Formal prerequisites
Students need to be able to perform basic programming tasks and have a foundational understanding of discrete mathematics, especially vector and matrix operations.
Intended learning outcomes
After the course, the student should be able to:
- Outline the software and hardware architecture of OpenGL
- Implement interactive graphics using OpenGL
- Describe light/material interaction and how it relates to the Phong lighting model
- Program GLSL shaders for the Phong lighting model and other effects.
- Use linear algebra to perform the transformations between coordinate spaces in the graphics pipeline
- Implement applications with scene graphs, textures, shaders, and lights
- Explain the math and theory behind virtual cameras in computer
- Describe advanced rendering techniques such as shadow maps and deferred shading.
Learning activities
Foundational study in which text and online resources provide the background for in-depth programming assignments. Classes will also include supervised project work and introductions to advanced topics.
Besides traditional lectures the class will also include class-based discussions and small quizzes to make the students reflect about the topics.
Weekly exercises are not handed in but their solutions are published after one week.
Both the weekly exercises and the final project are solved individually.
Course literature
The course literature is published in the course page in LearnIT.
Ordinary exam
Exam type:D: Submission of written work with following oral, external (7-trinsskala)
Exam variation:
D22: Submission of written work with following oral exam supplemented by the work submitted.
Exam description:
Submission of an individual project including source code, binaries (if any) and a short report describing the implementation details and the theory used.
The exam will cover both the curriculum as well a project.
Oral exam: 20 min.