Advanced Computer Graphics - SS 2024

This course will introduce students to advanced and more complex methods and techniques of computer graphics, as compared to the Bachelor's course "Computer Graphics"; also, some of those topics will be covered here in more depth. 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. Ray-tracing (photo-realistic images);
  2. Alternative object representations (modeling);
  3. Advanced texturing methods;
  4. Generalized barycentric coordinates and parameterization of meshes;
  5. Advanced shader programming (special effects);
  6. Physically-based rendering/lighting;
  7. Culling techniques (real-time rendering);
  8. Mesh processing
  9. Data structures and the theory of boundary representations (meshes);

News

Discord: https://discord.gg/YGUZFxf
I encourage you to use this for discussions and Q&A amongst yourselves. (Rest assured that I don't have time to "listen in" to your chatting on discord ;-) )

Slides and Lecture Recordings

The following table contains the topics and the accompanying slides and videos (it will be filled step-by-step).
Note: the videos are encoded with H.265/HEVC, which should play fine with Safari and Edge, and with VP9/WEBM, which should play fine in all other browsers (but have twice the file size). You can also download the videos and watch them offline using your favorite video player on your laptop.

Ch. Topics Slides Video Assignments Frameworks
1. Organization;
Ray-tracing: principle, the rendering equation, Whitted-style ray-tracing, camera models, lighting model, reflected rays, refraction, Fresnel terms, attenuation, scattering, dispersion, intersection ray-polygon,
PDF 0
PDF 1
Basics of RT Assignment 1
Setup Instructions
RaytracingFramework gitignore
2. Ray Tracing: intersection ray-triangle, intersection ray-box, ray-sphere intersection, ray-tracing height fields, numerical robustness, limitations of Whitted-style ray-tracing, distribution ray-tracing, stratified and Poisson disk sampling, grid-based construction algorithm, Poisson disk sampling on the sphere, distribution raytracing: anti-aliasing, soft shadows, glossy-matte reflection, depth-of-field
Object representations: quadrics
PDF 1 PDF 2
3. Object representations: implicit surfaces, sure-fire root finding methods, metaballs, generalizations of metaballs, polygonization of implicit surfaces using marching cubes, instancing, constructive solid geometry (CSG): definition, ray-tracing, polygonization, principle of point cloud surfaces PDF 2 Assignment 2
CSGTreeFramework
4. Acceleration data structures: taxonomy, light buffer, beam and cone tracing, bounding volumes, 3D grids and spatial hashing, traversal of grids, mailbox technique, optimal grid resolution, recursive & hierarchical grid, irregular grids (construction and ray traversal) proximity clouds (sphere tracing), octree, kd-trees, ray traversal using kd-trees, PDF 3 kd-tree traversal for ray-tracing: H256 VP9 Assignment 3
Reference Slides
AccelerationFramework
5. May 1 (holiday)
Lab meeting (tutorial)
6. Acceleration data structures: kd-tree construction, surface area heuristic (SAH), efficient storage of kd-trees, spatial v. object partitioning, bounding volume hierarchies (BVHs), BVH traversal using a p-queue, principles of construction of BVHs, median cut heuristic, plane sweep construction with SAH.
Holiday: Ascension of Christ
PDF 3
7. Collision Detection: requirements, collision detection pipeline, collision matrix, 3D grid, sweep and prune, separating planes algorithm using perceptron learning rule, hierarchical collision detection, types of bounding volumes, BV hierarchies for coll.det., k-DOPs, inner sphere trees, massively-parallel collision detection (kDet) PDF 4 Assignment 4
CollisionDetectionFramework
8. Advanced shader techniques: recap of the programmable pipeline and GLSL, procedural textures in the shader (example: brick texture), value noise, gradient noise,
Lab meeting
PDF 5
9. Advanced shader techniques: spot noise, Worley noise; ambient occlusion, refractive objects, the geometry shader, simple examples, furry objects with shells and fins, rendering silhouettes. PDF 5
10. Physically-based lighting: radiometric quantities, solid angles and change of variables, properties of radiance, invariance of radiance, definition of BRDF, properties of BRDFs, reflectance equation, conservation of energy, PDF 6 Assignment 5
PBRFramework
11. Physically-based lighting: computing Lo with illumination from point light, constructing BRDFs, microfacet theory, the three effects modeled in the BRDF, the Fresnel equation, the normal distribution function Trowbridge-Reitz/GGX, the geometry function, the Disney BRDF.
Mesh Processing: calculating good vertex normals, orienting meshes consistently, Laplacian smoothing, extension to prevent shrinking, global Laplacian smoothing, subdivison surfaces (Catmull-Clark).
PDF 7 Assignment 6
MeshFramework
12. Boundary Representations: definitions, orientability, 2-manifold, homeomorphism, indexed face set, OBJ file format, doubly-connected edge list (half-edge data structure), mesh traversals using a DCEL, limitations of DCEL, PDF
13. Boundary Representations: mesh matrices and example applications, Euler equation, complexity of polyhedra, Platonic solids, Euler characteristic,
Procedural modeling: extrusion, fractal terrain modeling, terrain modelling using fault lines; L-systems: definition, turtle graphics, parametric L-systems, stochastic L-systems, procedural modeling using 3D L-systems and genetic algorithms.
PDF
14. Parameterization: general approach, condition for and proof of a unique solution, concrete parameterizations.
Lab meeting
PDF
10. 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 PDF View Frustum Culling Framework

If you are interested in doing a thesis with us, please check my Call for Theses and our ever-growing list of potential topics for a thesis. Also, be sure to check our research projects. If you are interested in any of these, just drop me a line (or anybody else in the CGVR group). We also have close relationships with Mahidol University in Bagnkok, Thailand; so, if you are interested in doing a thesis abroad, please contact me.

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

Important Equations

In the exam, it would be beneficial if you would remember, and if you could explain at least the following equations:

  1. \( L_o = L_e + \int_{\Omega} \, \rho \cdot L_i \cdot \cos(\theta) \, d\omega \)
  2. \( \vec x^T Q \vec x = 0 , \quad \vec x \in \mathbb{R}^4, \; Q \in \mathbb{R}^{4 \times 4} \)
  3. \( \mathcal{S} = \bigl\{ \; \vec x \; | \; \vec x \in \mathbb{R}^3 \, , \; P(\vec x ) = \tau \; \bigr\} \; \text{with} \; P(\vec x ) = \sum_i a_i \, p( \| \vec x - \vec x_i \| ) \; \text{and} \; p(r) = e^{ - b r^2} \)
  4. \( C(B) = \operatorname{Prob}[ \text{intersection with } B_1] \cdot C(B_1) + \operatorname{Prob}[ \text{intersection with } B_2] \cdot C(B_2) \)
    alternatively: \( C(B) = \operatorname{area}(B_1) \cdot N(B_1) + \operatorname{area}(B_2) \cdot N(B_2) \)
  5. \( T = N_V C_V + N_P C_P \; \text{with} \; N_V = \text{\# BV test}, C_V = \text{cost of BV test}, N_P = \text{\# primitive tests}, C_P = \text{cost of primitive test} \)
  6. \( \rho_{\mathsf{spec}} = \frac{ F( \vec{l}, \vec{h}) D( \vec{h} ) G( \vec{l}, \vec{v} ) }{ \mathsf{ normalization} } \)
  7. \( V-E+F=2 \;\; \text{and} \; \; \chi = V - E + F \)
These equations can serve as kind of bridge piers.

Video Recordings of the Lecture from SS 2024

These are provided in the hopes they could help you prepare for the exam. Note that the definitive list of material for your exam is given by the table above!

Chapter HEVC WEBM
Ray tracing, path tracing HEVC webm
Object representations HEVC webm
Acceleration data structures HEVC webm
Collision Detection HEVC webm
Culling and visibility computations HEVC webm
Advanced shader techniques, noise functions HEVC webm
Advanced texturing methods HEVC webm
Mesh Processing HEVC webm
Boundary Representations HEVC webm
Striping, Stripification HEVC webm
Generalized Barycentric Coordinates HEVC webm
Parameterization HEVC webm
Procedural modeling HEVC webm

The videos are provided with two different encodings, HEVC (H.265) and WEBM (VP9), one of which should play fine in any browser.

Textbooks

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

Please note that the course is not based on any 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 used book shops on the internet are Abebooks and BookButler.

Additional Literature, Videos, and Demos for Deeper Insights

Other Interesting Bits and Pieces

Gabriel Zachmann
Last modified: Sat Jul 13 01:24:58 MDT 2024