Computer Graphics 1

Undergraduate course, Hochschule Coburg, 2026

Teaser

Credit Points5 ECTS
Lectures90 minutes weekly
Labs90 minutes weekly
Duration15 weeks
Grading90 minutes written exam
Bonus GradesVoluntary presentations of a lab or theory assignment gives 10% extra credit on final exam

Contents

  • Frame Buffer and Color Representation
  • Recap. of Linear Algebra and Analytic Geometry
  • Line Rasterization
  • Triangle Rasterization
  • Barycentric Interpolation
  • Transformations (Rotation, Translation, Linear, Affine)
  • Viewing (Projective Transformations)
  • Visible Surface Determination
  • Lighting
  • Shading

Teaching Goals

  • Learn the fundamentals of rasterization and computer graphics
  • Understand, handle, solve, and explain typical computer graphics theory problems
  • Write a basic software triangle rasterization

Lab Assignments

We create a simple 3D software rasterizer in C. Students learn

  • C Programming
  • Project management with CMake
  • Unit Tests (with Unity)
  • Use an IDE, such as Visual Studio, for programming, debugging, and testing.

Every week, there is a new lab assignment.

Week iStart assignment i in class, ask questions
Week i + 1Present solution of i+1 in class

A00Vec3Maths

Implement basic vector and matrix mathematics in C.

A01BasicRaster

Play a bit with a simple image and draw a circle and a box.

Blue Circle

A02Triangle

Draw a triangle.

Blue Triangle

A03Mesh2D

Draw 2D mesh with rigid transformations. Here is an example output from the test-cases:

Tiger

A04Mesh3DNoZBuffer

Draw a 3D mesh with perspective transformation but no z buffer. You should expect to see some rendering artifacts.

Bunny No Z Buffer

A05TriangleGouraud

Draw a triangle with barycentric interpolation.

Gouraud Triangle

A06Mesh3DZBuffer

Add a Z Buffer for correct depth.

Z Buffer Bunny

A07FlatShading

We shade the faces with flat shading.

Flat Shaded Bunny

A08GouraudShading

Next, we compute the lighting at the vertices and interpolate the result across the triangle.

Gouraud Sphere

A09PhoneShading

For better lighting, we compute the lighting at each pixel.

Phong Sphere

A10Optimize

Optimize the speed with OpenMP, SIMD, replace small triangles with points, cull, etc. OptimizedBunny

Theory Assignments

Slides

Literature

AI Usage

While most AIs can solve the lab and theory assignments, I recommend not using them. You will lose a great teaching experience, plus

  • I will ask multiple lab assignment questions in the final exam and there your only AI is a calculator.
  • It is fun to do the labs on your own or even better with a friend.
  • The best fun is to ask me in class :-)
  • You get extra credit if you present an assignment.