Computer Graphics II - current information (2015/2016)

Lecture: every MONDAY AT 14:00 in S4 room (Malá Strana)

Labs: every other MONDAY AT 15:40 (starting on 27. 2. 2017) in the SW1 lab (Rotunda)

Lecture plan

Lecture #1 (20. 2. 2017)

Introduction, literature, shading and ray-tracing revisited

Course content, additional sources, ray-tracing basics

Lecture #2 (27. 2. 2017)

Shading, reflectance models

Phong shading model, shading interpolation, general BRDF concepts

Lab #1 (27. 2. 2017)

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 (6. 3. 2017)

Reflectance models

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

Lecture #4 (13. 3. 2013)

Shadow casting, ray-scene intersections

Shadow maps, shadow buffer, volumetric shadows.
Ray-scene intersection basics: planar shapes, convex polyedr, implicit and algebraic surfaces, general and rotational quadrics, sphere (geometric solution), toroid, sorface of revolution, CSG representation.

Lab #2 (13. 3. 2017)

Ray-based renderer architecture II (Intersection, ISolid, IReflectanceModel, IMaterial)

Task 022: 360°/180° panoramic camera

Lecture #5 (20. 3. 2017)

Speedup techniques for R-T

Spline surfaces, Bezier surfaces: subdivision, Newtonian iteration. Classification of speedup 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 speedup techniques, cube directory, light buffer, ray coherency, projection plane directory, generalized rays]

Lecture #6 (27. 3. 2017)

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.

Lab #3 (27. 3. 2017)

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

Task 021: Layered reflectance model Weidlich-Wilkie

Lecture #7 (3. 4. 2017)

Anti-aliasing and sampling

More applications of noise functions (water surface simulation, flame simulation).
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

Lab #4 (10. 4. 2017)

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

Task 062: Scene animation with panoramic camera
Task 089: Efficient Sphereflake implementation

Copyright (C) 2001-2017 J.Pelikán, last change: 2017-03-20 13:39:34 +0100 (Mon, 20 Mar 2017)