Počítačová 3D grafika (tzv. trojrozměrná grafika, 3D computer graphics) je v informatice označení pro speciální část počítačové grafiky, která pracuje s trojrozměrnými objekty. Převod 3D objektů do 2D zobrazení se nazývá renderování. Nejznámějším využitím počítačové 3D grafiky je vytváření animací (pro tvorbu filmů nebo počítačových her), avšak 3D grafika je využívána i ve vědě a průmyslu (například pro počítačové simulace nebo trojrozměrné zobrazení orgánů).
Historie
Výzkum v oblasti 3D grafiky probíhal současně na mnoha místech převážně ve Spojených státech amerických od 60. let 20. století.[1] Nejvýznamnější roli v tomto oboru sehrála Univerzita v Utahu, kde byl roku 1968Davidem Evansem založen projekt pro rozvoj počítačové grafiky. Utažské univerzitě se podařilo pro tento program získat jak dostatek peněz, tak přední experty v oboru (na univerzitě pracoval mimo jiné i Ivan Sutherland) a v průběhu let univerzita dosáhla významných výsledků. Mezi důležité objevy provedené v rámci tohoto programu patří:
Mapování textur („pokrytí“ povrchu tělesa obrázkem)
Algoritmy pro stínování těles – stínováním se rozumí vykreslení určitého místa na povrchu tělesa správnou barvou pro vytvoření iluze trojrozměrnosti. Nejjednodušší metoda (flat shading, konstantní stínování) vybarví celý polygon jedním odstínem barvy. Existuje ale několik metod pro simulaci zaoblených tvarů:
Phongovo stínování je pomalejší, ale přesnější technika vynalezená Buiem Tuongem Phongem. Iluze oblého povrchu je vytvořena interpolováním směru normály podél povrchu polygonu s nastavitelnou velikostí odrazivosti (lesklosti) materiálu. Tato metoda byla později optimalizována Jimem Blinnem, dalším pracovníkem utažské univerzity. V dnešní době jde o široce využívanou metodu.
Do širšího povědomí se dostala s nástupem počítačů Commodore Amiga na přelomu osmdesátých a devadesátých let, kdy se objevila řada aplikací. Real3D, Imagine, LightWave. Své první verze zde uvedly i některé současné 3D aplikace, jako např. Cinema 4D nebo Blender.
Prvním filmem, kde se objevily 3D grafické počítačem generované obrázky, se v roce 1976 stal Futureworld[3] a prvním celovečerním 3D-animovaným filmem byl Toy Story z roku 1995.
Pojmem 3D modelování se rozumí proces tvarování a vytváření 3D modelu, který může být reprezentován několika způsoby. Modely mohou být vytvořeny na počítači člověkem pomocí modelovacího nástroje, podle dat získaných měřicím přístrojem z reálného světa nebo na základě počítačové simulace.
Reprezentace těles
Asi nejobvyklejší reprezentace tvaru tělesa je tzv. hraniční reprezentace. Těleso je popsáno jako mnohostěn zcela určený svými hranicemi (stěnami, hranami a vrcholy). Téměř všechny počítačové modely, které se používají ve hrách a filmech, jsou hraniční modely.
Související informace naleznete také v článku Texturování.
Jednou z významných činností při tvorbě 3D grafiky je vytváření a mapování textur. Textura je obrázek, kterým je „obaleno“ těleso; v nejjednodušší formě jsou textury používány pro obarvení modelu, ale na tělese může být více vrstev textur, které určují například i průhlednost či lesklost v daném bodě na povrchu. Pomocí textur je možné dosáhnout velmi dobrých výsledků a vysoké úrovně detailu při použití relativně jednoduchého modelu.
Každý bod na povrchu tělesa má potom kromě souřadnic X, Y, Z (které určují polohu bodu v prostoru) ještě 2 souřadnice označované většinou jako U a V, které určují umístění textury na daném místě. Proces umísťování textury na povrch tělesa se proto často nazývá „UV mapování“.
Animace
Pod pojmem „animace“ se ve 3D grafice nerozumí pouze samotný pohyb objektů, ale i definice zdrojů světla, úhlu pohledu kamery, barev a dalších prvků, které se mohou měnit v čase. Nejjednodušší metoda animace zvaná keyframing je založená na stejném principu jako klasická 2D počítačová animace. Spočívá v definování klíčových „mezních“ pozic, mezi kterými potom počítač vytvoří plynulý přechod.
Animace postav a mechanických zařízení je ve 3D grafice často založena na animaci kostry modelu. Stejně jako skutečný živý organismus i 3D model má kostru a jednotlivým částem modelu se určí, ke které kosti náleží. Pokročilé 3D grafické nástroje usnadňují animaci kostry díky technice zvané inverzní kinematika[4]. Na rozdíl od klasické animace kostry, kdy animátor určuje úhly všech kloubů, stačí při použití inverzní kinematiky určit pozici několika klíčových částí kostry a polohy kloubů jsou dopočítány algoritmicky.
Existuje mnoho dalších technik animace, které se využívají ve 3D grafice. Některé programy umožňují animaci na základě simulace fyzikálních jevů jako je gravitace, pohyb vodní hladiny a podobně. Pro velmi realistickou animaci postav se zase využívá technologie motion capture, kdy je pomocí speciálního zařízení zachycen pohyb živého herce a nahraná data jsou potom aplikována na 3D model postavy.
Renderování
Související informace naleznete také v článku Renderování.
Rendering je vykreslení dvourozměrného obrazu na základě modelu scény a dalších informací (polohy pozorovatele, textur, osvětlení a stínování). Simulují se zejména tyto vlastnosti obrazu:
Stínování – kolísání barvy a jasu povrchu v závislosti na osvětlení
Texturování – dodání realistického vzhledu povrchu modelu
Bump mapping – metoda napodobující drobné nerovnosti povrchu
Pro realistický vzhled scény je potřeba simulovat především šíření a rozptyl světla v celé scéně (globální osvětlení). Dva nejznámější algoritmy jsou sledování paprsku a radiozita.
Sledování paprsku je metoda založená na zpětném sledování paprsku vycházejícího z oka pozorovatele a jeho kolizí s tělesy ve scéně. Dobře simuluje ostré stíny, zrcadlové odrazy (i vícenásobné) a průhledné objekty. Algoritmus neposkytuje fotorealistický výstup a příliš se nehodí pro simulaci v reálném čase.
Radiozita je metoda využívající fyzikální zákony o šíření energie v prostoru. Je vhodná k simulování nepřímého (odraženého) osvětlení ve scéně s matnými povrchy. Nedokáže pracovat s průhlednými objekty a zrcadly. Scéna musí být reprezentována polygonálním modelem.
Součástí fáze renderování je projekce ze tří do dvou rozměrů.
↑Zdroj informací o historii: CARLSON, Wayne. A Critical History of Computer Graphics and Animation [online]. The Ohio State University, 2003 [cit. 2009-01-04]. Dostupné v archivu pořízeném dne 2012-03-27. (anglicky)
↑ Další ikony počítačové grafiky. design.osu.edu [online]. [cit. 2009-08-06]. Dostupné v archivu pořízeném dne 2012-02-12.
↑The World's First Computer Animation And Effects In Film: [online]. your3dsource.com [cit. 2009-01-04]. Dostupné online. (anglicky)
↑ Článek vysvětlující podstatu a problematiku inverzní kinematiky. www.3dsoftware.cz [online]. [cit. 2009-08-06]. Dostupné v archivu pořízeném dne 2006-02-26.