The aim of the course is two-fold. The major goal is to introduce the students to the basic notions and algorithms of computer graphics. In particular, the course concentrates on two classical rendering algorithms: ray tracing and rasterization. The secondary goal, is to build a background knowledge in basic linear algebra, that is necessary to understand the graphics material but which also serves as a background for the future studies.
Learning outcomes:
1. Understand and remember basic notions of linear algebra: coordinate systems in 2D and 3D, vectors, lines, planes, basic shapes, projections, matrices, transformations.
2. Understand and be able to apply operations on the above, such as for example: operations with vectors, projection of shapes on the plane, operations with matrices, transformations of objects.
3. Understand the rendering algorithms of ray tracing and rasterization.
4. Understand the mechanism of shading, reflections and refractions.
5. Be able to apply the understanding in points 3&4 to implement the ray tracing and rasterization algorithms in the programming language C#.
|
 |
|
Topics covered:
Linear algebra topics
• Vectors, coordinate system, vector operations, circles, ellipses, lines in 2D, parallel and perspective projections
• Lines, planes and spheres in 3D, operations with them
• Matrices and operations with them, notions of transpose, determinant, inverse
• Transformations: translation, scaling, reflection, rotation, shearing; composite transformations
• Projection transformations: orthographic, perspective
Computer graphics topics
• Ray tracing: ray visibility queries, recursive ray tracing, reflections, transparency
• Rasterization: camera models, visibility algorithms, rasterization pipeline, shaders
• Special effects: materials, shadows
• Global illumination, physically based rendering, acceleration structures
|
|