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ů).
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 1968 Davidem 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ří:
Několik výzkumníků univerzity později založilo významné firmy na poli počítačové grafiky, například Silicon Graphics (Jim Clark), Adobe Systems (John Warnock), Netscape (Jim Clark) nebo Pixar (Edwin Catmull). Neopomenutelným produktem utažské univerzity je nejslavnější model v historii počítačové grafiky, konvice z Utahu[2], kterou vytvořil Martin Newell.
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.
Prvním českým 3D animovaným filmem byl v roce 2008 Kozí příběh – pověsti staré Prahy.
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.
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.
V projektování a CAD se používá metoda CSG (konstruktivní geometrie pevných těles). Modely se konstruují z primitivních geometrických těles (koule, kvádr, válec, kužel, toroid) operacemi sjednocení, průniku a rozdílu. Pro zobrazování se tento model většinou převádí do hraniční reprezentace.
V objemové reprezentaci jsou tělesa definována jako množina bodových vzorků získaných např. lékařským tomografem nebo 3D scannerem. Pro zobrazování se používá metoda sledování paprsku, speciální algoritmy (které zviditelňují buď objem nebo povrch) nebo se tělesa převádějí do hraniční reprezentace.
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í“.
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.
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:
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.
Součástí fáze renderování je projekce ze tří do dvou rozměrů.
V tomto článku byly použity překlady textů z článků 3D computer graphics na anglické Wikipedii, 3D modeling na anglické Wikipedii, Polygonal modeling na anglické Wikipedii a Rendering na anglické Wikipedii.