Single-Course English 5 ECTS

Computer Graphics

Overall Course Objectives

Computer generated models and images are ubiquitous. Classic applications are CAD systems for product design, game engines, computer animation, 3D multimedia, virtual reality, and scientific visualization. With the recent development in 3D scanning and printing technology, work with digitized real world objects has also become an important area of application.

Interactive computer graphics enables us to manipulate digital 3D objects. The ability to work interactively with digital objects is an important engineering skill. Computer graphics is essential both in the classic disciplines, where we model and render digital objects, and in the full cycle from digitization to visualization and manipulation to printing of real world objects. In addition, modern internet browsers support hardware accelerated 3D graphics in webpages that run on both desktop and mobile platforms. This means that 3D graphics will also be used more broadly in the webpages of the future.

This course provides an overview of interactive computer graphics. Our objective is to enable the participants to (a) implement real-time computer graphics systems and (b) to develop graphics algorithms for and apply them in visualization, modelling, and animation. The course covers web graphics technology and introduces the principles of 3D graphics that one would need to operate in the graphics applications discussed above.

Learning Objectives

  • Use an application programming interface such as WebGL or OpenGL for developing a graphics application.
  • Access graphics hardware using shader languages such as GLSL.
  • Create a 3D scene with different objects, light sources, and materials.
  • Use different camera types and geometries to visualize the scene.
  • Interact with the scene using various interaction techniques.
  • Model light-material interaction for a surface and develop simple shaders.
  • Simulate surface details using texture mapping and bump mapping.
  • Simulate the environment using environment mapping.
  • Simulate shadows and specular reflections.
  • Animate camera, object position, and light settings.
  • Render parametric surfaces based on a selected subdivision level.

Course Content

WebGL/OpenGL as an API. Camera models. Transformations and projections.
3D object representations. Local versus global illuminations models. Hybrid methods.
Real-time rendering: Shadow, bump, reflection, environment, and texture mapping.
3D graphics cards and implementing vertex and pixel shaders in GLSL.
Interaction techniques (picking, selecting, rubber banding, events).
Smooth curves and surfaces: parametric representations (Bézier, NURBS), subdivision (Catmull-Clark, Loop).

Recommended prerequisites

01002/01004/01005/01006/02002/02100/02101/02102/02393/02631/02632/02633/02635, Programming experience (for instance Python, Java, C/C++, JavaScript, or Matlab)

Teaching Method

Lectures and computer exercises.



Introductory computer graphics course at the M.Sc. level.
It is possible to take this course alongside 02562 Rendering – Introduction. The two courses complement each other. However, this course can also be attended independently.
Bachelor student with interest in computer graphics may follow the course.

See course in the course database.





13 weeks




DTU Lyngby Campus

Course code 02561
Course type Candidate
Semester start Week 35
Semester end Week 48
Days Wed 8-12

7.500,00 DKK