Hardware pro počítačovou grafiku (NPGR019)

Kód/rozsah: NPGR019, 2/1 Z + Zk (léto)
Rozvrh: Čtvrtek 9:00 S4 (Malá Strana)
Vyučující: Josef Pelikán
Předpoklady: základní kurs programování, alespoň základní znalosti jazyka C++, základy lineární algebry a matematické analýzy, Počítačová grafika I (NPGR003)

Přednáška navazuje volně na Počítačovou grafiku I a je určena pro vážnější zájemce o tento obor, pokrývá moderní oblast real-time 3D grafiky na PC:
matematické metody, datové struktury, jednotlivé části grafických urychlovačů, HW podpora geometrických transformací a stínování, výpočet viditelnosti, poloprůhlednost, texturování, buffer šablony, víceprůchodové zpracování a další pokročilejší techniky. Programování GPU: vertex-shaders, geometry-shaders a pixel-shaders, příklady konkrétního API (OpenGL), GPGPU.

Přednáška je doplněna cvičeními v počítačové laboratoři. Cvičení se věnují praktickým aspektům předmětu, konkrétnímu programování GPU (OpenGL v prostředí SDL) a zadávání průběžných zápočtových úkolů. Postačí hrubá znalost programování v jazyce C# a C++ (Visual Studio). Viz Grcis repository, Ogl repository.

Sylabus

  • úvod, historie, architektura GPU - historie grafických urychlovačů, zobrazovací řetězec v GPU: aplikace, geometrická fáze, rasterizace
  • matematické základy - homogenní transformace, promítání, převod mezi souřadnými soustavami, kvaternióny, interpolace a aproximace, spline funkce
  • reprezentace scény - ploškové modely, sítě trojúhelníků, indexované pole, hierarchické reprezentace, úroveň detailu (LoD), skinning, billboards
  • algoritmy - výpočet viditelnosti, poloprůhlednost, ořezávání, stínování, intepolace barvy, mlha, mapování textur, bump-mapping, environment-mapping
  • základní techniky - předávání dat do akcelerátoru, typy dat, textury, index-buffery, strips/fans, double-buffering, akumulační buffer, stencil-buffer, víceprůchodové zpracování
  • programování GPU - shaders - architektura, obecné základy, vertex-, geometry- tesselation-, fragment- shadery
  • API pro 3D akceleraci - OpenGL, vyšší jazyk GLSL, shadery, příklady, kuchařka
  • pokročilejší praxe (podle časových možností) - uživatelská data ve vrcholech, spolupráce vertex a pixel shaderu, hierarchický model scény, environment mapping, bump-mapping, interpolace polohy a orientace, Phongovo stínování, mlha, poloprůhlednost, použití akumulačního bufferu a stencil bufferu: rozmazání pohybem, hloubka ostrosti, vržené stíny, omezování vykreslovaných dat, kostra, skelatální animace, ..

Doplňující literatura

  • [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)