Nemáte oprávnenie upravovať túto stránku z nasledovného dôvodu: Činnosť, ktorú požadujete, môže vykonať iba člen skupiny: Používatelia. Môžete si zobraziť a kopírovať zdroj tejto stránky: ==Real-time computer graphics== __TOC__ This course ... * Will focus on visualization of 3D scenes [http://madebyevan.com/webgl-water/] * 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: [[media:RTGProjektSpecifikacia.doc|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 **Volumetric particle shadows [https://www.youtube.com/watch?v=xh2q_p6hQEo] **Evolution of Amd and Ati graphics cards [https://www.youtube.com/watch?v=6rQIsRF2_Js] [https://www.youtube.com/watch?v=Q-U7MLpgPX8] **Evolution of graphics from NVIDIA [https://www.youtube.com/watch?v=o65iFtbJBww] [https://www.youtube.com/watch?v=6QJvAiCHXqc] **PhysX [https://www.youtube.com/watch?v=pfonMfP__Ks] * Course schedule * "Terms and conditions" of this course * Lecture notes: [[media:Lecture0.pdf|Lecture0.pdf]] === Lesson01 "Graphics Pipeline, Shaders" === * OpenGL Graphics Pipeline [http://www.songho.ca/opengl/index.html] * Shader languages * GLSL – vertex, fragment * Passing variables * Lecture notes: [[media:Lecture1.pdf|Lecture1.pdf]] === Lesson02 "Buffer Objects, FBO" === * Vertex arrays [http://www.songho.ca/opengl/gl_vertexarray.html] * Buffer object data * Vertex Buffer Objects [http://www.songho.ca/opengl/gl_vbo.html] * Pixel Buffer Objects [http://www.songho.ca/opengl/gl_pbo.html] * Rendering to texture * Deferred lighting [https://en.wikipedia.org/wiki/Deferred_shading][https://learnopengl.com/Advanced-Lighting/Deferred-Shading] * Lecture notes: [[media:Lecture2.pdf|Lecture2.pdf]] === Lesson03 "Lighting, Texturing" === * Rendering equation * Phong local illumination * Oren-Nayar model * Cook-Torrance model * Texture filtering [https://open.gl/textures] [http://www.opengl-tutorial.org/beginners-tutorials/tutorial-5-a-textured-cube/] * Bump mapping [https://learnopengl.com/Advanced-Lighting/Parallax-Mapping] * Lecture notes: [[media:Lecture3.pdf|Lecture3.pdf]] === Lesson04 "Global Illumination" === * Ambient occlusion [http://http.developer.nvidia.com/GPUGems/gpugems_ch17.html] * Distance attenuation * Ray tracing [http://gpurt.sourceforge.net/DA07_0405_Ray_Tracing_on_GPU-1.0.5.pdf] * Depth buffer masking * Lecture notes: [[media:Lecture4.pdf|Lecture4.pdf]] === Lesson05 "Shadows" === * Shadows generation * Light maps * Planar shadows * Projective shadows * Shadow mapping [http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-16-shadow-mapping/] [https://learnopengl.com/Advanced-Lighting/Shadows/Shadow-Mapping] * Shadow volumes * Lecture notes: [[media:Lecture5.pdf|Lecture5.pdf]] === Lesson06 "Reflections, Refractions" === * Blending * Fresnel reflectance * Environment mapping * Water rendering [https://www.gamasutra.com/blogs/FrankKane/20140122/209052/3D_Water_Effects_Heres_Whats_Involved.php?print=1] [https://www.keithlantz.net/2011/10/ocean-simulation-part-one-using-the-discrete-fourier-transform/] [http://david.li/waves/][https://developer.nvidia.com/gpugems/GPUGems/gpugems_ch01.html] * Caustics [https://medium.com/@evanwallace/rendering-realtime-caustics-in-webgl-2a99a29a0b2c] * Subsurface scattering * Lecture notes: [[media:Lecture6.pdf|Lecture6.pdf]] === Lesson07 "Post-Processing" === * Depth of Field [https://developer.nvidia.com/gpugems/gpugems3/part-iv-image-effects/chapter-28-practical-post-process-depth-field] * Gaussian blur * Motion blur * Glow [https://learnopengl.com/Advanced-Lighting/Bloom] * High Dynamic Range [https://learnopengl.com/Advanced-Lighting/HDR] [https://www.cl.cam.ac.uk/~rkm38/pdfs/tone_mapping.pdf] * Tone mapping * Lecture notes: [[media:Lecture7.pdf|Lecture7.pdf]] === Lesson08 "Geometry Optimalization" === * Frustum culling [http://www.lighthouse3d.com/tutorials/view-frustum-culling/view-frustums-shape/] [http://www.lighthouse3d.com/tutorials/view-frustum-culling/radar-approach-testing-spheres/] [http://www.lighthouse3d.com/tutorials/view-frustum-culling/geometric-approach-testing-boxes-ii/] * Back-face culling [https://learnopengl.com/Advanced-OpenGL/Face-culling] * Occlusion culling [http://developer.download.nvidia.com/books/HTML/gpugems/gpugems_ch29.html] * Tessellation [http://ogldev.atspace.co.uk/www/tutorial30/tutorial30.html] * Texture atlas * Lecture notes: [[media:Lecture8.pdf|Lecture8.pdf]] === Lesson09 "GPGPU" === * SIMD * CUDA [http://supercomputingblog.com/cuda-tutorials/] [http://www.nvidia.com/content/nvision2008/tech_presentations/Game_Developer_Track/NVISION08-Image_Processing_and_Video_with_CUDA.pdf] * Shared memory * OpenCL * Compute shaders [https://www.khronos.org/assets/uploads/developers/library/2014-siggraph-bof/KITE-BOF_Aug14.pdf] * Lecture notes: [[media:Lecture9.pdf|Lecture9.pdf]] === Lesson10 "GPU Volume Graphics" === * Volume Data * Transfer Function * Marching Cubes * 3D Textures * Multi-textures * Ray-casting * Lecture notes: [[media:Lecture10.pdf|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: **http://www.lighthouse3d.com **http://antongerdelan.net/opengl/ **https://www.tutorialspoint.com/webgl/index.htm *Libraries: **https://www.opengl.org/resources/libraries/glut/ **http://openil.sourceforge.net/ **http://glew.sourceforge.net/ **http://gnuwin32.sourceforge.net/packages/freetype.htm **http://assimp.sourceforge.net/ **Example: ***[[media:example.zip|example.zip]] === Excercise00 "Basic project” === * Basic project: [[media:cv0.rar|cv0.rar]] * Work with libraries GLUT and GLEW. Assignment: Add a light to the program. === Excercise01 "Texturing and Lighting” === * Texture in OpenGL [https://www.3dgep.com/texturing-and-lighting-in-opengl/] * Diffuse Lighting [http://learnwebgl.brown37.net/09_lights/lights_diffuse.html] Assignment: create a textured cube and implement the diffuse lighting in the shader program: [[media:cv01.zip|cv01.zip]] === Excercise02 "GLSL 4.00.9” === * Transformation matrices [http://www.songho.ca/opengl/gl_projectionmatrix.html] * Animation * VBO [https://open.gl/drawing] Assignment: Create VBO and implement shader programs using GLSL 4.00.9: [[media:cv2.zip|cv2.zip]] === Excercise03 "OBJECT LOADING” === * Projection and Model-view Matrices * Assimp Library [https://learnopengl.com/Model-Loading/Assimp] * Specular Lighting Assignment: Load object and textue. Create VBO and implement specular light shader programs using GLSL: [[media:cv03.zip|cv03.zip]] HOMEWORK (20.3.): * load 3 objects * create point light source * add a texture === Excercise04 "Geometry Shader” === * Z buffer * Geometry Shader [http://www.lighthouse3d.com/tutorials/glsl-tutorial/geometry-shader/][https://open.gl/?content=geometry][https://learnopengl.com/Advanced-OpenGL/Geometry-Shader] Assignment : Implement shader program that creates a tetrahedron: [[media:cv04.zip|cv04.zip]] === Excercise05 "Tessellation” === * Tessellation control shader [http://prideout.net/blog/?p=48] * Tessellation evaluation shader Assignment: napíšte control a evaluation shader ktorý prerozdelí trojuholník: [[media:cv05.zip|cv05.zip]] === Excercise06 "Shadow Mapping” === * Render To Texture [http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-14-render-to-texture/] * FBO [http://www.songho.ca/opengl/gl_fbo.html] Assignment: nastavte kameru z pohľadu svetla a zobrazte tieň: [[media:cv7.zip|cv7.zip]] === Excercise07 "Ambient Occlusion” === * Render to Depth Texture [https://learnopengl.com/Advanced-OpenGL/Depth-testing] * Ambient Occlusion Assignment: nastavte shader program na zobrazenie efektu ambient occlusion: [[media:Cv07.zip|Cv07.zip]] HOMEWORK (24.4.): *add camera movements *animate at least one object === Excercise08 "Post-processing” === * Post-processing * Glow Assignment: nastavte shader program na zobrazenie glow efektu: [[media:cv9.zip|cv9.zip]] === Excercise09 "Compute Shaders” === * 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] Assignment: implement Julia set image using compute shader [[media:cv10.zip|cv10.zip]] <!-- OUTDATED: === Excercise01 "Animácia” === * Transformácia objektov * Animácia, matice Témy: cvičenie transformácie v shader programe: [[media:cv1.rar|cv1.rar]] === Excercise02 "GLSL 4.00.9” === * Transformácia objektov * Animácia, matice * VBO [https://open.gl/drawing] Témy: prepíšte predchádzajúce cvičenie do GLSL 4.00.9: [[media:cv2.zip|cv2.zip]] === Excercise03 "Geometry Shader” === * Z buffer * Geometry Shader [http://www.lighthouse3d.com/tutorials/glsl-tutorial/geometry-shader/][https://open.gl/?content=geometry] Témy: napíšte geometry shader ktorý vytvorí z trojuholníka štvorsten: [[media:cv3.zip|cv3.zip]] === Excercise04 "Tessellation” === * Tessellation control shader [http://prideout.net/blog/?p=48] * Tessellation evaluation shader Témy: napíšte control a evaluation shader ktorý prerozdelí trojuholník: [[media:cv4.zip|cv4.zip]] === Excercise05 "Motion Blur” === * Screen space motion blur * Framebuffer Object [http://www.lighthouse3d.com/tutorials/opengl_framebuffer_objects/][https://open.gl/framebuffers] Témy: napíšte shader ktorý vytvorí efekt "motion blur": [[media:cv5.zip|cv5.zip]] === Excercise06 "Projekcia” === * Projekčná matica [http://duriansoftware.com/joe/An-intro-to-modern-OpenGL.-Chapter-3:-3D-transformation-and-projection.html][http://www.songho.ca/opengl/gl_projectionmatrix.html] * Zobrazenie modelu Témy: nastavte kameru a zobrazte scénu: [[media:cv6.zip|cv6.zip]] === Excercise07 "Shadow Mapping” === * Hĺbková textúra * Tieň Témy: nastavte kameru z pohľadu svetla a zobrazte tieň: [[media:cv7.zip|cv7.zip]] === Excercise08 "Ambient Occlusion” === * Hĺbková textúra * Ambient Occlusion Témy: nastavte shader program na zobrazenie efektu ambient occlusion: [[media:cv8.zip|cv8.zip]] === Excercise09 "Post-processing” === * Post-processing * Glow Témy: nastavte shader program na zobrazenie glow efektu: [[media:cv9.zip|cv9.zip]] --> Späť na Course:Real time computer graphics/en. ← Course:Real time computer graphics/en