Lecture: every **THURSDAY AT 9:00 in S9 room** (Malá Strana)

(Czech version is on Thursday at 12:20 in S9)

Labs: **every other THURSDAY AT 15:40** (starting on 28. 2. 2019)
in the **SW2 lab** (ground floor)

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

General BRDF concepts, Fresnel functions, up to microfacet models (Cook-Torrance).

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)

Microfacet models: Cook-Torrance, Oren-Nayar, looking for better microfacet distributions D(h) and geometric factors G, Lafortune's lobe model, Schlick's improvements

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.

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

Task 022: 360°/180° equirectangular camera

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]

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).

Reflectance models and materials revisited (IReflectanceModel, IMaterial), Weidlich & Wilkie: Arbitrarily layered microfacet surfaces.

Task 021: Layered reflectance model Weidlich-Wilkie

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

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

RT scene animation, ITimeDependent, AnimatedRayScene, 046cameranim, etc. Scene animation definition using CS-script files. How to encode video from individual frames.

Task 062: RT animation with panoramic camera

Basic radiometric terms, flux, radiance, irradiance, solid angles, BRDF, Kajiya's rendering equation. Problem discretization (FEM), system of linear equations for radiosity.

Revisiting: Intersection, ISolid. Bounding volume hierarchies.

Task 089: Efficient Sphereflake

Re-visiting radiometry, Form-factor computation, solving linear system..

Monte-Carlo quadrature: introduction, primary, secondary estimate, variance, stratified sampling, importance sampling, combined estimators, ..

Textures (ITexture), noise textures, normal maps.

Task 097: Orange peel simulation

Random walks, Russian roulette, next-event estimation (NEE). Rendering equation revisited (Kajiya), path-tracing, bidirectional path-tracing, examples, [Duality in rendering theory, dual radiosity example].

Handed in animations.

The rest of MC rendering: Photon-mapping.

Noise functions, noise textures, `IImageFunction` interface.

Task 117: Hashing for noise generators

Copyright (C) 2001-2019 J.Pelikán, last change: 2019-05-09 18:19:40 +0200 (Thu, 09 May 2019)