Real-time computer graphics
Contents
- 1 Real-time computer graphics
- 2 What you Need to Pass
- 3 LESSONS
- 3.1 Lesson00 "Introduction to Computer Graphics"
- 3.2 Lesson01 "Graphics Pipeline, Shaders"
- 3.3 Lesson02 "Buffer Objects, FBO"
- 3.4 Lesson03 "Lighting, Texturing"
- 3.5 Lesson04 "Global Illumination"
- 3.6 Lesson05 "Shadows"
- 3.7 Lesson06 "Reflections, Refractions"
- 3.8 Lesson07 "Post-Processing"
- 3.9 Lesson08 "Geometry Optimalization"
- 3.10 Lesson09 "GPGPU"
- 3.11 Lesson10 "GPU Volume Graphics"
- 4 EXCERCISES
- 4.1 Excercise00 "Basic project”
- 4.2 Excercise01 "Texturing and Lighting”
- 4.3 Excercise02 "GLSL 4.00.9”
- 4.4 Excercise03 "OBJECT LOADING”
- 4.5 Excercise04 "Geometry Shader”
- 4.6 Excercise05 "Tessellation”
- 4.7 Excercise06 "Shadow Mapping”
- 4.8 Excercise07 "Ambient Occlusion”
- 4.9 Excercise08 "Post-processing”
- 4.10 Excercise09 "Compute Shaders”
This course ...
- Will focus on visualization of 3D scenes [1]
- Will show you what are the current topics
- Will improve your skills in
- OpenGL
- Computational geometry
- Algorithms and data structures
What you Need to Pass
- Show your project (70% min. 35%).
- Project specification template: RTGProjektSpecifikacia.doc
- For video recording you can use: https://obsproject.com/
- Pass oral exam: (30%, min.15%).
- Grades
- A = 91-100
- B = 81-90
- C = 71-80
- D = 61-70
- E = 51-60
- Fx = 0-50
LESSONS
Lesson00 "Introduction to Computer Graphics"
- Introduction to Computer Graphics
- Common techniques
- Cutting edge tools and packages
- State of the Art
- Course schedule
- "Terms and conditions" of this course
- Lecture notes: Lecture0.pdf
Lesson01 "Graphics Pipeline, Shaders"
- OpenGL Graphics Pipeline [8]
- Shader languages
- GLSL – vertex, fragment
- Passing variables
- Unified architecture [9]
- Lecture notes: Lecture1.pdf
Lesson02 "Buffer Objects, FBO"
- Vertex arrays [10]
- Buffer object data
- Vertex Buffer Objects [11]
- Pixel Buffer Objects [12]
- Rendering to texture
- Deferred lighting [13][14]
- Lecture notes: Lecture2.pdf
Lesson03 "Lighting, Texturing"
- Rendering equation
- Phong local illumination
- Oren-Nayar model
- Cook-Torrance model
- Texture filtering [15] [16] [17]
- Bump mapping [18]
- Lecture notes: Lecture3.pdf
Lesson04 "Global Illumination"
- Ambient occlusion [19]
- Distance attenuation
- Ray tracing [20]
- Depth buffer masking
- Lecture notes: Lecture4.pdf
Lesson05 "Shadows"
- Shadows generation
- Light maps
- Planar shadows
- Projective shadows
- Shadow mapping [21] [22]
- Shadow volumes
- Lecture notes: Lecture5.pdf
Lesson06 "Reflections, Refractions"
- Blending
- Fresnel reflectance
- Environment mapping
- Water rendering [23] [24] [25][26]
- Caustics [27]
- Subsurface scattering
- Lecture notes: Lecture6.pdf
Lesson07 "Post-Processing"
- Depth of Field [28]
- Gaussian blur
- Motion blur
- Glow [29]
- High Dynamic Range [30] [31]
- Tone mapping
- Lecture notes: Lecture7.pdf
Lesson08 "Geometry Optimalization"
- Frustum culling [32] [33] [34]
- Back-face culling [35]
- Occlusion culling [36]
- Tessellation [37]
- Texture atlas
- Lecture notes: Lecture8.pdf
Lesson09 "GPGPU"
- Lecture notes: Lecture9.pdf
Lesson10 "GPU Volume Graphics"
- Volume Data
- Transfer Function
- Marching Cubes
- 3D Textures
- Multi-textures
- Ray-casting
- Lecture notes: Lecture10.pdf
EXCERCISES
- On every seminar we will focus on the selected problems from lessons. We will use programming tools to perform real-time computer graphics algorithms.
- Tutorials:
- Libraries:
Excercise00 "Basic project”
- Basic project: cv0.rar
- Work with libraries GLUT and GLEW.
- To disable the compilator errors use #pragma warning(disable:4996) and cast the char constants to pointers
Assignment: Add a light to the program.
Excercise01 "Texturing and Lighting”
Assignment: create a textured cube and implement the diffuse lighting in the shader program: cv01.zip
Excercise02 "GLSL 4.00.9”
Assignment: Create VBO and implement shader programs using GLSL 4.00.9: cv2.zip
Excercise03 "OBJECT LOADING”
- Projection and Model-view Matrices
- Assimp Library [45]
- Specular Lighting
Assignment: Load object and textue. Create VAO and implement specular light shader programs using GLSL: cv03.zip
HOMEWORK (7.4.):
- load 3 objects
- create point light source
- add a texture
Excercise04 "Geometry Shader”
Assignment : Implement shader program that creates a tetrahedron: cv04.zip
Excercise05 "Tessellation”
- Tessellation control shader [49]
- Tessellation evaluation shader
Assignment: napíšte control a evaluation shader ktorý prerozdelí trojuholník: cv05.zip
Excercise06 "Shadow Mapping”
Assignment: nastavte kameru z pohľadu svetla a zobrazte tieň: cv7.zip
Excercise07 "Ambient Occlusion”
- Render to Depth Texture [52]
- Ambient Occlusion
Assignment: nastavte shader program na zobrazenie efektu ambient occlusion: Cv07.zip
HOMEWORK (28.4.):
- add camera movements
- animate at least one object
Excercise08 "Post-processing”
- Post-processing
- Glow
Assignment: nastavte shader program na zobrazenie glow efektu: cv9.zip
Excercise09 "Compute Shaders”
Assignment: implement Julia set image using compute shader cv10.zip