Computer Graphics for Computer Games (Summer 2019/20)

Contents

This is an intermediate course about real-time computer graphics focusing on techniques used in contemporary 3D games.


News

Follow the appropriate channel at Gamedev Discord!
https://discord.gg/c49DHBJ


Dates (SIS)

Lectures: Mondays, 14:00, S9 (we start 17.2.2020)

Labs: Tuesdays, 12:20, SW1 (we start 17.2.2019)


Course Exam

There will be an oral examination done during the examination period. We have compiled a list of exam topics (COVID19 update!) for you. Read them to find out what we are going to be asking during the exam.

Exam dates:

Friday, 19.6.2020, 9:00, online only.

Friday, 26.6.2020, 9:00, at MS (room S9) + online as well.


Lectures

Lectures Schedule

No. Date Topic Lecturer Content Slides
1. 17.2.2020 Introduction Martin Kahoun Course overview PDF
2. 24.2.2020 Review of the GPU architecture
and the OpenGL/DirectX pipeline
Shaders & Shading Technology
Martin Kahoun GPU architecture
Moving geometry primitives through the pipeline
Shader stages one by one:
vertex, pixel, geometry, tessellation, compute
PDF
3. 2.3.2020 Game Engine Architecture: Overview Jakub Gemrot Game engine components / layers
Game loops (single/multi processor)
Gameplay system
Development and debugging
PDF 
4. 9.3.2020 Content Creation I – Manual Martin Kahoun Content creation for games in general
The importance of texture calibration
Level of detail
Photogrammetry
Creating large landscapes
PDF
5. 16.3.2020 Content Creation II – Procedural Martin Kahoun Gentle introduction to procedural modelling
Procedural shading basics
Examples of use in gaming engines
PDF, YT
6. 23.3.2020 GTA V + DOOM 4 renderer dissection Martin Kahoun Techniques used in GTA V and DOOM 4 renderers PDF, YT
7. 30.3.2020 Real-time shadows Martin Kahoun Shadow calculation (shadow mapping,
shadow volume)
Advanced shadow mapping techniques
Soft shadows
Anti-aliasing (if time permits)
PDF, YT
8. 6.4.2020 Physically-based Rendering – Part I
Preliminaries
Jakub Gemrot Intro to radiometry, photometry, colorimetry
Radiance, luminance, color spaces, chromacity diagram
sRGB, brightness and gamma correction
Light-matter interactions, BRDF, the reflection equation
PDF, YT
13.4.2020 Easter Holidays
9. 20.4.2020 Rendering II
Real-time image-based lighting
Jaroslav Křivánek
(in memoriam)
Brief overview of Monte Carlo integration
Image-based lighting
Prefiltered environment maps
Filtered importance sampling
Basic global illumination & path-tracing
Photon mapping
PDF
(
2019)
10. 27.4.2020 Rendering III
Advanced real-time shading techniques
Jaroslav Křivánek
(in memoriam)
Function approximation
Spherical harmonics
SH irradiance environment maps
Precomputed GI, lightmaps
Radiosity normal mapping
PDF1
PDF2
(
2019)
11. 4.5.2020 Invited Talk Cancelled
12. 11.5.2020 Animation Martin Kahoun Animation – formats and compression
Bone (or skeletal) animation; rigid bodies, joints
Vertex blending and problems
Forward and inverse kinematics, solvers
Facial animations; blend shapes, morph targets
Motion capture
Physically based animations; hair animation, anatomical body models
PDF, YT
13. 18.5.2020 Physically-based Rendering Cancelled

Labs

The labs have three parts:

  1. there are going to be 5 labs oriented on Direct X 11 and the low-level programming for GPUs,
  2. you will be required to choose a semester project (you can work in pairs) and deliver it (list of example topics available here),
  3. you will be required to select a paper, investigate a technique described in there, compile a presentation explaining the technique and present it.

You will receive credits for labs if you:

  1. are sending us regular semester project reports,
  2. deliver a milestone presentation,
  3. successfully deliver and defend a semester project.

COVID-19 UPDATE: Dates have changed (in bold)! Semester Project Milestone Presentations will happen through zoom.us, I will send you the link a week before presentations.

Labs Schedule

No. Date Topic Lecturer Content Slides Project Project
points
1. 17.2.2020 Semester Project Topics Overview Jakub Gemrot Overview of topics you can choose for your
semester project; the list of examples available here.
DirectX 11 – Part I Jakub Gemrot DirectX Pipeline Overview
Opening DirectX Window
PDF GDrive
2. 24.2.2020 Semester Project Topics Consultations (!) Jakub Gemrot BE SURE TO COME WITH A TOPIC IN MIND!
Q&A about topics you find interesting
DirectX 11 – Part II Jakub Gemrot Rendering a triangle
Custom DX11 Rendering Framework
Phong Shading
PDF 1
PDF 2
GitHub
3. 2.3.2020 Signing up for a Semester Project Topic (!) Jakub Gemrot This is your last chance to pick/change the topic.

Prepare an online document that will be summarizing
what you are going to deliver:
– describe the overall goal for your work
– describe the target result
– list current state of the art
– define the point 0 (the initial state of anything you will start from)
– technologies/libraries/frameworks you will be using
– list resources you want to base your wok on (or start with)
– list of features you aim to implement in the context of this project
– list of steps (i.e. milestones) that you plan to follow / go through

Be sure to link your online document with Scoring sheet
via commenting on an appropriate cell, read directions here.

DirectX 11 – Part III Jakub Gemrot Texturing PDF GitHub
4. 9.3.2020 Semester project topic presentations (!) Jakub Gemrot You are supposed to prepare 5 minutes talk
about the topic you have chosen:
– describe current state of the art
– describe resources you want to base your wok on
(or to start with)
– describe of features you aim to implement
in the context of this projectDo not forget to link your slides
into the Scoring sheet (via commenting on
an appropriate cell).
5
5. 16.3.2020 DirectX 11 – Part IV Jakub Gemrot Geometry shader, Grass through Billboarding, SSAO PDF, YT
23.3.2020 Semester Project Report 1 (!) Jakub Gemrot Send us a report on the progress you have done
on your semestral projects. 1-2 A4 reporting on:
what you have done so far, what challenges you
have faced, what sources have you utilized/read,
the best screenshot(s) exemplifying your work so
far.You submit your report by providing the link
within the Scoring sheet (via commenting on
an appropriate cell).
 10
30.3.2020 Labs cancelled, home office
6.4.2020 Labs cancelled, home office
13.4.2020 Easter Holiday
20.4.2020 Labs cancelled, home office
6. 27.4.2020 Semester Project Milestone Presentations (!)  Jakub Gemrot  Presentations; prepare 12 minutes talk about
the state of your semester projects.
Summarize your work so far and include screenshots/videos
exemplifying the current state of your work.
15
4.5.2020 Labs cancelled, home office
11.5.2020 Semester Project Report 2 (!) Jakub Gemrot Send us a report on the progress you have done
on your semestral projects. 1-2 A4 reporting on:
what you have done so far, what challenges you
have faced, what sources have you utilized/read,
the best screenshot(s) exemplifying your work so
far.You submit your report by providing the link
within the Scoring sheet (via commenting on
an appropriate cell).
 10
7. 25.5.2020 Semester Project Defense – Early birds (!) Jakub Gemrot Prepare 15 minutes talk about your semester
project including its show case. Read about details
in the semester project defense guide.
 40
8. ?.6.2020 Semester Project Defense – Final birds (!) Jakub Gemrot Prepare 15 minutes talk about your semester
project including its show case. Read about details
in the semester project defense guide.
 40

Semester Project Grading

You need to gather at least 70 points for your semester project in order to pass.

You are gathering points by choosing a semester project topic, sending reports and defending your semester project (on time, see the column ‘Project points’ above).

You receive points for:

  1. Choosing a semester project topic on time – 5 points
  2. Sending report 1 – 10 points
  3. Milestone presentations – 15 points
  4. Sending us report 2 – 10 points
  5. Defending your project – up-to 40 points

Semester projects are judged both by teachers and you (students), resulting score from the defense is an average of scores you receive from your audience. Read about the details in the semester project defense guide.

https://gamedev.cuni.cz/wp-content/uploads/2018/10/logolink_OP_VVV_hor_barva_eng.jpg