Lecture: every MONDAY AT 16:00 in S1 room (Malá Strana)
Labs: every other MONDAY AT 12:20 (starting on 26. 2. 2018) in the SW1 lab (Rotunda). Two alternating groups - one Czech, one English.
Course content, additional sources, brief overview of GPU history
GPU architecture overview (OpenGL style, FFP & programmable pipeline), 3D data, graphic primitives, .. GPU programming basics, shader types.
Credit system, tasks, programming environment (C++/C# environments,
SVN repositories, MS Visual Studio).
C# examples: 038trackball [086shader, 087fireworks].
C++ examples: sample01.
Libraries: OpenTK 3.0 pre,
SDL 2.0.
Buffers, double- and triple- buffering, semi-transparency, anti-aliasing, stencil buffer, mirror stencil buffer technique (from Advanced techniques), [GPU FFP lighting].
Texture basics, multi-texturing, environment maps, bump mapping, filtering, MIP-maps,
texture compression, more advanced texture techniques..
Shader concepts (RenderMan), history, vertex processor,
fragment processor, interoperation data, vertex shaders, fragment shaders,
shading language basics.
Modes of data transfer CPU->GPU: immediate mode, client-side buffers, index buffers, glVertexPointer(), .., server-side buffers (VBO), GL extensions (glew.h, glew.c).
Shaders: GLSL [& Cg] languages. Uniform / varying quantities. GLSL shaders, programs, linking. Some detail on GLSL.
GLFW window library for OpenGL, time measurements in GLFW/SDL.
Textures: glGenTextures(), glBindTexture(), .., data transfer modes for textures.
Shaders: GLSL shader/program setup (simple VS-FS system - Phong shading with optional texture).
C++ examples: sample15 (GLFW example, shaders, texture, time measurement),
sample08 (texture read from bitmap file, buffers, benchmarking in SDL),
sample09 (GLSL shader, texture),
[sample10 (Cg shader)].
OpenGL 3 & 4 advances: geometric shaders, buffer objects, shader pipelines, VAO buffers,.. Geometry and tesselation shader concepts, tesselation shaders.
Coordinate systems, homogenous coordinates, projections, OpenGL coordinate systems, Euler angles, quaternions and its interpolation, perspective-correct interpolation.
OpenGL coordinate systems, more shaders in C++/C#.
C# examples: 086shader, 038trackball .
C++ examples:
sample09 (GLSL shader, texture),
sample10 (Cg shader, EXE only),
sample11 (Gerstner waves in Cg, EXE only).
Interpolation and approximation (Hermite curves, Bezier, natural spline, B-spline), quaternion spline interpolation, skinning
Demo: quaternions, animation curves.
C++ examples: sample05 (quaternions),
sample06 (animation curves, texture combiners),
sample09 (GLSL shader, texture),
sample10 (Cg shader),
sample11 (Gerstner waves in Cg).
Data for real-time graphics: B-rep, scene hierarchies, triangle meshes, relation to OpenGL (buffers). Survey of LoD approaches, discrete LoD techniques, introduction to dynamic LoD techniques.
Dynamic LoD techniques, sustained frame rate LoD for terrain data. Data: terrain LoD, point sprites, billboards, imposters.
LoD examples, GPU-Based Geometry Clipmaps, Video 1, Video 2, Hugues Hoope's page.
GPGPU and CUDA basics, architecture, GPGPU programming
CUDA and OpenCL examples, particles, school of fish.
OpenCL project example (090opencl in GrCis), CUDA project example (sample14 in ogl).
CUDA and OpenCL, examples. Stencil-buffer techniques (volumetric shadows), multi-pass algorithms, advanced cube-mapping, Parallax mapping, occlusion mapping, Non-Photorealistic Rendering..
Copyright (C) 2005-2018 J.Pelikán, last change: 2019-05-09 17:52:59 +0200 (Thu, 09 May 2019)