# Computer Graphics II – current information (2018/2019)

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)

## Lecture plan

### Lecture #1 (21. 2. 2019)

#### Introduction, literature, shading and ray-tracing revisited

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

### Lecture #2 (28. 2. 2019)

#### More reflectance models

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

### Lab #1 (28. 2. 2019)

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

#### Reflectance models

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

### Lecture #4 (14. 3. 2019)

#### Ray-scene intersections

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: 360°/180° equirectangular camera

### Lecture #5 (21. 3. 2019)

#### 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]

### Lecture #6 (28. 3. 2019)

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

Copyright (C) 2001-2019 J.Pelikán,
last change: 2019-03-14 12:04:18 +0100 (Thu, 14 Mar 2019)