Hardware for computer graphics (NPGR019)

Code/hours: NPGR019, 2/1 C+Ex (summer)
Schedule: Thu 9:00 S4 (Malá Strana)
Lecturer: Josef Pelikán
Pre-requisites: basic programming course, elementar knowledge of C++, basic calculus and linear algebra, Computer graphics I (NPGR003)

This course extends the Computer graphics I course and focuses on modern, hardware-supported realtime graphics. It covers mathematical fundamentals of realtime graphics, data structures, architecture of modern GPUs, basic and advanced methods, GPU programming, GPGPU.

Additional labs focus on practical aspects of the subject, especially GPU shader programming. Exercises are using C#/C++ programming and GLSL shader languages. See the Grcis repository, Ogl repository.

Syllabus

  • History and architecture of GPU - typical 3D graphics pipeline, fixed vs. programmable pipeline
  • mathematics - homogeneous coordinates, projections, quaternions, interpolation and approximation curves, spline functions
  • 3D scene representations - face-based models, triangle meshes, vertex arrays, index arrays, scene hierarchies (scene graph), Level of Detail (LoD), skinning, billboards
  • algorithms - visibility (depth-buffer), transparency, clipping, shading, perspective-correct interpolation, fog, texture mapping, bump-mapping, environment-mapping
  • basic techniques - passing data from CPU to GPU, data types, textures, index-buffers, VBOs, strips/fans, double-buffering, accumulation buffer, stencil-buffer, multi-pass rendering
  • GPU programming - shaders - architecture and history, principles, vertex-, geometry- tesselation-, fragment- shaders
  • API for realtime graphics - OpenGL, languages Cg and GLSL, shader samples
  • advanced techniques (if there is enough time) - vertex attributes, environment mapping, bump-mapping, use of accumulation and stencil buffers: motion blur, depth of field, shadow maps and volumetric shadows, skelatal animation, skinning..

Literature

  • [Moller2002] Tomas Akenine-Möller, Eric Haines: Real-Time Rendering, A K Peters, 2002, ISBN: 1568811829
  • [OpenGL2009] OpenGL Architecture Review Board: OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 4.1, Xth Edition, Addison-Wesley, 2009, ISBN: ???
  • [Rost2004] Randi J. Rost: OpenGL(R) Shading Language, Addison-Wesley, 2004, ISBN: 0321197895
  • [Fosner2002] Ron Fosner: Real-Time Shader Programming, Morgan Kaufmann, 2002, ISBN: 1558608532

Copyright (C) 2004-2017 J.Pelikán, last change: 2017-02-22 16:07:49 +0100 (Wed, 22 Feb 2017)