Computer Graphics II - current information (2017/2018)

Lecture: every WEDNESDAY AT 15:40 in SW1 room (Malá Strana)
(Czech version is on Tuesday at 14:00 in S3)

Labs: every other WEDNESDAY AT 17:20 (starting on 28. 2. 2018) in the SW1 lab (Rotunda)

Lecture plan

Lecture #1 (21. 2. 2018)

Introduction, literature, shading and ray-tracing revisited

Course content, additional sources, ray-tracing basics, shading basics (Phong reflectance model, Gouraud and Phong shading)

Lecture #2 (28. 2. 2018)

More reflectance models

General BRDF concepts, microfacet models: Cook-Torrance..

Lab #1 (28. 2. 2018)

Credit system, tasks, programming environment (C# environment, SVN repository grcis, MS Visual Studio), GrCis repository, ray-tracing example: 048rtmontecarlo.
Ray-based renderer architecture I (interfaces and core classes: RayScene, IIntersectable, IImageFunction, IRenderer, ISolid, ..)
Ray-tracing in GrCis (PDF slides)

Lecture #3 (7. 3. 2018)

Reflectance models

Microfacet models: Cook-Torrance, Oren-Nayar, looking for better microfacet distributions D(h) and geometric factors G

Lecture #4 (14. 3. 2018)

Shadow casting, ray-scene intersections

Shadow maps, shadow buffer, volumetric shadows.
Ray-scene intersection basics: planar shapes, convex polyhedron, implicit and algebraic surfaces, general and rotational quadrics, sphere (geometric solution), torus, surface of revolution, CSG representation. Spline surfaces, Bezier surfaces: subdivision, Newtonian iteration.

Lab #2 (14. 3. 2018)

Ray-based renderer architecture II (Intersection, ISolid, IReflectanceModel, IMaterial), ICamera revisited, CS-script for scene definitions (the 048rtmontecarlo-script project)

Task 022: Alternative camera

Lecture #5 (21. 3. 2018)

Textures and noise functions

Textures in ray-tracing - 2D and 3D textures, table (bitmap) vs. procedural texture, table interpolations. "Bump-texture" (normal map), stochastic textures - introduction, synthetic noise functions (white noise, interpolation and convolution methods), Perlin noise, Lewis sparse convolution, turbulence, application of noise functions in texture synthesis: wood, marble. More applications of noise functions (water surface simulation, flame simulation).

Lecture #6 (28. 3. 2018)

Acceleration of R-T

Classification of acceleration techniques, bounding solid, bounding efficiency, bounding-volume-hierarchy (BVH), efficiency and construction, space dividing methods: grid, 3DDDA, octree, KD-tree, subdivision approaches, adaptive tree pass. [Directional acceleration techniques, cube directory, light buffer, ray coherency, projection plane directory, generalized rays]

Lab #3 (28. 3. 2018)

RT scene animation, ITimeDependent, AnimatedRayScene, 046cameranim, etc. How to encode video from individual frames.

Task 062: RT scene animation
Task 063: Flame animation in 2D

Lecture #7 (4. 4. 2018)

Anti-aliasing and sampling

Basics of sampling theory, anti-aliasing in R-T context, spatial/temporal alias, Anti-aliasing by numeric quadrature, sampling method survey (regular, random sampling, jittering, "N-rooks" sampling, Poisson disc sampling, Mitchell's algorithm, deterministic algorithms), adaptive sampling, supersampling criteria, practical examples

Lecture #8 (11. 4. 2018)

Monte-Carlo in Ray-tracing

Distributed ray-tracing: glossy reflections and refractions, soft shadows, depth-of-foeld simulation, motion blur, light dispersion. Monte-Carlo quadrature, examples.

Lab #4 (11. 4. 2018)

Scene & animation definition using CS-script files. Revisiting Intersection, ISolid, attributes. Textures (ITexture), 3D texture = inner structure of the material.

Task 072: 3D noise-based texture

Lecture #9 (18. 4. 2018)

Introduction to radiometry, radiosity

Basic radiometric terms, flux, radiance, irradiance, radiometrické pojmy: vyzařovaný výkon, tok výkonu (radiosita), radiance, iradiance, solid angles, BRDF, Kajiya's rendering equation. Problem discretization (FEM), system of linear equations for radiosity. Form-factor computation, solving linear system..

Lecture #10 (2. 5. 2018)

Modern rendering approaches - Monte Carlo

General Monte Carlo: introduction, primary, secondary estimate, variance, stratified sampling, importance sampling, combined estimators, random walks, Russian roulette, next-event estimation (NEE), ..

Lecture #11 (9. 5. 2018)

Monte-Carlo rendering

Rendering equation (Kajiya), path-tracing, bidirectional path-tracing, NEE, examples, [Duality in rendering theory, dual radiosity example].

Lab #5 (9. 5. 2018)

ISolid, Intersection revisited..
Distributed RT examples (JaGrLib, GrCis - 049distributedrt, area light source). Internal sampling (controlled by anti-aliasing): MT.rank and MT.total. Depth-of-field of a real camera lens.

Task 079: Implicit surfaces for RT
Task 088: Depth of field camera for RT

Lecture #12 (23. 5. 2018)

Monte-Carlo rendering II

Handed in animations.
The rest of MC rendering: Photon-mapping.

Lab #6 (23. 5. 2018)

RT acceleration revisited, ray vs. triangle intersection, ray vs. box (AABB) intersection.

Task 065: Efficient parametric surfaces for RT

Copyright (C) 2001-2017 J.Pelikán, last change: 2018-05-23 10:22:21 +0200 (Wed, 23 May 2018)