Realtime grafika na GPU (NPGR019)
Kód/rozsah: NPGR019, 2/1 Z + Zk (léto)
Rozvrh: Pondělí 16:00 S1 (Malá Strana)
Vyučující: ??
Předpoklady: základní kurs programování, alespoň základní znalosti jazyka C++,
základy lineární algebry a matematické analýzy,
Základy počítačové grafiky (NPGR003)
Přednáška navazuje volně na Základy počítačové grafiky
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-2018 J.Pelikán,
last change: 2018-09-24 11:13:34 +0200 (Mon, 24 Sep 2018)