Advanced Computer Graphics - SS 2018

This course will introduce students to advanced and more complex methods and techniques of computer graphics. Some of the topics that were touched upon in the Bachelor course "Computer Graphics" will be covered in more depth. In addition, more and other topics will be covered that were not taught in the Bachelor's course. This approach will both broaden and deepen students' knowledge about the field of computer graphics.

This course is for you, if you want to acquire ...

There are no formal prerequisites, but some degree of the following skills are desirable:

  1. A little bit of experience with C/C++ ; note that you will need just "C with classes" during this course.
  2. Knowledge of the material of the Bachelor course "Computer Graphics" (if you didn't manage to attend that course, you can easily recap that material for yourself).
  3. Algorithmic thinking (and, hopefully, some pleasure when thinking about algorithms)

Some of the envisioned topics (these can change during the semester):

  1. Data structures and the theory of boundary representations (meshes);
  2. Advanced texturing methods;
  3. Generalized barycentric coordinates and parameterization of meshes;
  4. Advanced shader programming (special effects);
  5. Culling techniques (real-time rendering);
  6. Ray-tracing (photo-realistic images);
  7. Alternative object representations (modeling);
  8. Mesh processing



The following table contains the topics and the accompanying slides (it will be filled step-by-step).

Week Topics Slides Assignments Frameworks
1. Organization;
Ray-tracing 1: principle, camera models, lighting model, secondary rays, refraction, Fresnel terms, attenuation, dispersion, intersection ray-polygon, intersection ray-triangle, ray-sphere, ray-tracing height fields,
2. Ray-tracing 2: numerical robustness, limitations of Whitted-style ray-tracing, distribution ray-tracing, stratified and Poisson disk sampling, grid-based construction algorithm,
Exercise meeting
PDF1 Sheet 1
3. Poisson disk sampling on the sphere, distribution raytracing: anti-aliasing, soft shadows, glossy-matte reflection, depth-of-field, motion blur.
4. Object representations 1: quadrics and superquadrics, implicit surfaces, sure-fire root finding methods (regula falsi, Illinois), metaballs, generalizations, polygonization of implicit surfaces using marching cubes, PDF Sheet 2
Raytracing Framework
5. Object representations 2: instancing, constructive solid geometry (definition, ray-tracing, polygonization), implicit surfaces defined over point clouds.
Acceleration data structures 1: taxonomy, light buffer, beam and cone tracing, 3D grids, traversal and storage, recursive grid, hierarchical uniform grid, proximity clouds (sphere tracing), octree,
6. Holiday (Ascension of Christ)
7. Exercise meeting.
kd-trees, kd-tree traversal. kd-tree construction, surface area heuristic (SAH), efficient storage of kd-trees, bounding volume hierarchies (BVHs), BVH traversal using p-queue, principle of construction of BVHs, plane sweep along principal axis with SAH, hierarchical collision detection, irregular grids (construction and ray traversal)
PDF Sheet 3
Raytracing Metaballs Framework
8. Culling: Bottlenecks in the rendering pipeline, kinds of culling, backface culling, normal masks, clustered backface culling, hierarchical clustered backface culling, view frustum culling, hierarchical view frustum culling, occlusion culling, batched queries, naive wait-and-draw algorithm, multiqueries, coherent hierarchical culling (CHC++), portal culling, detail culling. PDF
9. Advanced shader techniques: recap of programmable pipeline and GLSL, procedural textures in the shader,
Exercise meeting.
PDF GLSL Sheet 4
View Frustum Culling Framework
10. Advanced shader techniques 2: value noise, gradient noise, example: procedural textures with noise, refractive objects, the geometry shader, simple examples, rendering furry/fluffy objects with shells and fins, rendering silhouettes.
11. Tone mapping: HDR imaging, image histograms, histogram stretching, histogram equalization, tone reproduction using CLAHE, the Weber-Fechner law, Steven's power law, perceptually-based tone mapping, generating histograms on the GPU. PDF
12. Collision detection:
Exercise meeting.
Sheet 5
Collision Detection Framework
13. Mesh Processing: calculating good vertex normals, orienting meshes consistently, Laplacian smoothing, extension to prevent shrinking, global Laplacian smoothing, subdivison surfaces (Catmull-Clark).
Boundary Representations 1: definitions, orientability, 2-manifold, homeomorphism, OBJ file format, indexed face set,
14. Boundary Representations 2: doubly-connected edge list (half-edge data structure), mesh traversals using a a DCEL, limitations of DCEL, mesh matrices and example applications, Euler equation, Platonic solids, Euler characteristic. PDF

You can download some of the shaders that were discussed in class, plus some some very simple ones (discussed in the Bachelor course).


The following textbooks can help review the material covered in class:

Please note that the course is not based on one single textbook! Some topics might even not be covered in any current textbook! So, I'd suggest you first look at the books in the library before purchasing a copy.

If you plan on buying one of these books, you might want to consider buying a used copy -- they can often be purchased for a fraction of the price of a new one. Two good internet used book shops are Abebooks and BookButler.

Additional Literature and Deoms for Deeper Insights

Other Interesting Bits and Pieces

Gabriel Zachmann
Last modified: Sat Sep 29 13:47:09 CEST 2018