(Lesson01 "Graphics Pipeline, Shaders")
(Excercise09 "Compute Shaders”)
 
(7 intermediate revisions by the same user not shown)
Line 64: Line 64:
 
* Oren-Nayar model
 
* Oren-Nayar model
 
* Cook-Torrance model
 
* Cook-Torrance model
* Texture filtering [https://open.gl/textures] [http://www.opengl-tutorial.org/beginners-tutorials/tutorial-5-a-textured-cube/]
+
* Texture filtering [https://open.gl/textures] [http://www.opengl-tutorial.org/beginners-tutorials/tutorial-5-a-textured-cube/] [https://www.youtube.com/watch?v=-HAvejfMMoo]
 
* Bump mapping [https://learnopengl.com/Advanced-Lighting/Parallax-Mapping]
 
* Bump mapping [https://learnopengl.com/Advanced-Lighting/Parallax-Mapping]
 
* Lecture notes: [[media:Lecture3.pdf|Lecture3.pdf]]
 
* Lecture notes: [[media:Lecture3.pdf|Lecture3.pdf]]
Line 140: Line 140:
 
**http://glew.sourceforge.net/
 
**http://glew.sourceforge.net/
 
**http://gnuwin32.sourceforge.net/packages/freetype.htm
 
**http://gnuwin32.sourceforge.net/packages/freetype.htm
**http://assimp.sourceforge.net/
+
**https://github.com/assimp/assimp
 
**Example:
 
**Example:
 
***[[media:example.zip|example.zip]]
 
***[[media:example.zip|example.zip]]
Line 147: Line 147:
 
* Basic project: [[media:cv0.rar|cv0.rar]]
 
* Basic project: [[media:cv0.rar|cv0.rar]]
 
* Work with libraries GLUT and GLEW.
 
* 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.
 
Assignment: Add a light to the program.
  
Line 166: Line 167:
 
Assignment: Load object and textue. Create VAO and implement specular light shader programs using  GLSL: [[media:cv03.zip|cv03.zip]]
 
Assignment: Load object and textue. Create VAO and implement specular light shader programs using  GLSL: [[media:cv03.zip|cv03.zip]]
  
HOMEWORK (20.3.):
+
HOMEWORK (7.4.):
 
* load 3 objects
 
* load 3 objects
 
* create point light source
 
* create point light source
 
* add a texture
 
* add a texture
 +
** structure draft http://yuml.me/diagram/scruffy/class/edit/%2F%2F%20Cool%20Class%20Diagram,%20%2F%2F%20------------------,%20,%20%5BScene%5D%3C%3E-*%3E%5BModel%7CVBO;Texture;Model%20Matrix%5D,%20%5BScene%5D%3C%3E-1%3E%5BCamera%7CProjection%20Matrix;%20View%20Matrix%5D,%20%5BScene%5D%3C%3E-3%3E%5BLights%7CPosition;Color%5D
  
 
=== Excercise04 "Geometry Shader” ===
 
=== Excercise04 "Geometry Shader” ===
Line 177: Line 179:
  
 
=== Excercise05 "Tessellation” ===
 
=== Excercise05 "Tessellation” ===
* Tessellation control shader [http://prideout.net/blog/?p=48]
+
* Tessellation control shader [https://prideout.net/blog/old/blog/index.html@p=48.html]
 
* Tessellation evaluation shader
 
* Tessellation evaluation shader
 
Assignment: napíšte control a evaluation  shader ktorý prerozdelí trojuholník: [[media:cv05.zip|cv05.zip]]
 
Assignment: napíšte control a evaluation  shader ktorý prerozdelí trojuholník: [[media:cv05.zip|cv05.zip]]
Line 191: Line 193:
 
Assignment: nastavte shader program na zobrazenie efektu ambient occlusion: [[media:Cv07.zip|Cv07.zip]]
 
Assignment: nastavte shader program na zobrazenie efektu ambient occlusion: [[media:Cv07.zip|Cv07.zip]]
  
HOMEWORK (24.4.):
+
HOMEWORK (28.4.):
 
*add camera movements
 
*add camera movements
 
*animate at least one object
 
*animate at least one object
Line 203: Line 205:
 
* Compute Shader [https://www.khronos.org/assets/uploads/developers/library/2014-siggraph-bof/KITE-BOF_Aug14.pdf] [http://antongerdelan.net/opengl/compute.html] [https://github.com/LWJGL/lwjgl3-wiki/wiki/2.6.1.-Ray-tracing-with-OpenGL-Compute-Shaders-%28Part-I%29]
 
* Compute Shader [https://www.khronos.org/assets/uploads/developers/library/2014-siggraph-bof/KITE-BOF_Aug14.pdf] [http://antongerdelan.net/opengl/compute.html] [https://github.com/LWJGL/lwjgl3-wiki/wiki/2.6.1.-Ray-tracing-with-OpenGL-Compute-Shaders-%28Part-I%29]
 
* Julia set [https://en.wikipedia.org/wiki/Julia_set]  
 
* Julia set [https://en.wikipedia.org/wiki/Julia_set]  
Assignment: implement Julia set image using compute shader [[media:cv10.zip|cv10.zip]]
+
Assignment: implement Julia set image using compute shader [[media:cv09.zip|cv09.zip]]
  
 
<!--
 
<!--

Latest revision as of 14:41, 9 May 2022

Real-time computer graphics

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


  • 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
    • Volumetric particle shadows [2]
    • Evolution of Amd and Ati graphics cards [3] [4]
    • Evolution of graphics from NVIDIA [5] [6]
    • PhysX [7]
  • 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"

Lesson07 "Post-Processing"

Lesson08 "Geometry Optimalization"

Lesson09 "GPGPU"

  • SIMD
  • CUDA [38] [39]
  • Shared memory
  • OpenCL
  • Compute shaders [40]

Lesson10 "GPU Volume Graphics"

  • Volume Data
  • Transfer Function
  • Marching Cubes
  • 3D Textures
  • Multi-textures
  • Ray-casting
  • Lecture notes: Lecture10.pdf


EXCERCISES

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”

  • Texture in OpenGL [41]
  • Diffuse Lighting [42]

Assignment: create a textured cube and implement the diffuse lighting in the shader program: cv01.zip

Excercise02 "GLSL 4.00.9”

  • Transformation matrices [43]
  • Animation
  • VBO [44]

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

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 cv09.zip