Advanced Computer Graphics - SS 2016

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 topics will be covered that were not touched upon in the Bachelor's course. This apporach 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 we 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 methods for texturing (more realistic ;
  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. Anti-aliasing (improvement of quality)



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-box, ray-sphere, ray-tracing height fields,
Sheet 1
2. Ray-tracing 2: numerical robustness, distribution ray-tracing, Poisson disk sampling, anti-aliasing, soft shadows, glossy-matte reflection, depth-of-field, motion blur.
Exercise meeting (discussion of solutions of last week's exercise, presentation of the new assignments)
PDF Sheet 2
Raytracing Framework
3. Object representations: quadrics and superquadrics, implicit surfaces, root finding with Laguerre's method, metaballs, generalizations, polygonization of implicit surfaces using marching cubes, instancing, constructive solid geometry, fractals, PDF
4. Object representations 2: point cloud surfaces.
Linear-time Poisson disk sampling in the Cartesian domain, Poisson disk sampling on the sphere.
PDF Sheet 3
Gnuplot code
5. Acceleration data structures 1: taxonomy, light buffer, beam and cone tracing, 3D grids, mailbox technique, traversal and storage, recursive grid, hierarchical uniform grid, proximity clouds, octree, 5D ray octree, kd-trees, kd-tree traversal.
Lab meeting (discussion of solutions of last week's exercise, presentation of the new assignments).
PDF Sheet 4
ADS Framework
6. Acceleration data structures 2: kd-tree construction, surface area heuristic (SAH), efficient storage of kd-trees. bounding volumes, bounding volume hierarchies, BVH traversal, construction of BVHs plane sweep along principal axis with SAH
Lab meeting
7. Advanced Shader Techniques: recap programmable pipeline, procedural textures in the shader, value noise, gradient noise, refractive objects, the geometry shader, examples, rendering furry/fluffy objects with shells and fins, rendering silhouettes. PDF
8. Tone mapping: HDR imaging, image histograms, histogram stretching, histogram equalization, tone reproduction by Ward. PDF Sheet 5
Shader Framework
9. Tone mapping 2: the Weber-Fechner law, Steven's power law, perceptually-based tone mapping, generating histograms on the GPU.
Advanced texturing methods: seams, texture atlas, cube maps, polycube maps, concept of environment mapping, spherical environment mapping, cube envronment mapping, parallax mapping, view-dependent displacement mapping, VDM with self-shadowing.
10. Mesh Processing: orienting meshes consistently, Laplacian smoothing, extension to prevent shrinking, global Laplacian smoothing.
PDF Sheet 6 Parallax Framework
11. Boundary Representations: definitions, orientability, 2-manifold, homeomorphism, OBJ file format, indexed face set, winged edge data structure, doubly-connected edge list (half-edge data structure), mesh traversals using a a DCEL, limitations of DCEL, Euler equation, Platonic solids, Euler characteristic. PDF
12. Striping/Stripification: concepts, NP-completeness, SGI algorithm, FTSG algorithm.
Generalized Barycentric Coordinates 1: definition, interpolation property,
13. Generalized Barycentric Coordinates 2: general construction scheme and properties, mean value coordinates, applications, image warping, mesh morphing.
Procedural modeling: L-systems (D0L, parametric, stochastic), L-system for modeling rocks.

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.

Grades and Points achieved by the Assignments

For taking part in a so-called "Fachgespräch" (mini oral exam), you need a grade from the assignments >= 4.0 . You can get this by achieving at least 30% in total of all points of all asignments.

Some Additional Literature You Might Want to Read for Deeper Insights

Other Interesting Bits and Pieces

Gabriel Zachmann
Last modified: Mon Aug 29 16:37:04 CEST 2016