Renderovanie

[thumb|Obrázok vygenerovaný pomocou metódy [sledovanie lúča|sledovania lúča]]
thumb|Porovnanie prostého 3D modelu s jeho renderom

**Renderovanie** (angl. *rendering*) je tvorba reálneho obrazu na základe počítačového modelu, najčastejšie 3D. Rendering obsahuje v závislosti od softvéru mnoho parametrov a nastavení, ktorými možno ovplyvniť konečný vzhľad scény.

Ide o odvetvie počítačovej grafiky. Zaoberá sa tvorbou obrazov napodobňujúcich reálny svet. Je to zvláštny spôsob vizualizácie dát. Dáta sú parametre popisujúce reálny alebo imaginárny svet s jeho objektmi a ich vlastnosťami. Úlohou syntézy obrazu je vytvoriť z tohto počítačového modelu obraz, ktorý je pokiaľ možno nerozoznateľný od fotografie definovaného objektu v reálnom svete.

Syntéza obrazu je odvetvie, ktoré významne ovplyvňuje tvorbu počítačových hier, programov pre tvorbu grafiky a animácií a programov CAD/CAM.

Realistické počítačové obrazy nachádzajú uplatnenie pri tvorbe filmových efektov, v architektúre, vojenstve, pri simulácii fyzikálnych javov alebo projektoch pracujúcich s virtuálnou realitou.

## Hardvérové zrýchlenie
Proces renderovania je zvyčajne obmedzený dostupným výpočtovým výkonom a priepustnosťou pamäte, preto bolo na jeho zrýchlenie vyvinuté špecializované hardvérové vybavenie, najmä pre renderovanie v reálnom čase. Pre plynulé zobrazovanie výsledkov renderovania v reálnom čase sú potrebné hardvérové funkcie, ako napríklad snímkový buffer pre rastrovú grafiku. Hardvérové zrýchlenie nenahrádza použitie softvéru na renderovanie, skôr urýchľuje jednotlivé operácie alebo výpočty pomocou špecializovaných obvodov alebo spúšťa časti kódu softvéru na inom type procesora.

Vzhľadom na svoj pôvod grafické procesory zvyčajne stále poskytujú špecializované hardvérové zrýchlenie pre niektoré etapy tradičného 3D-rasterizačného potrubia, vrátane odstraňovania skrytých povrchov pomocou z-bufferu a textúrovania pomocou mipmap, ale tieto funkcie už nie sú vždy používané.

Moderné grafické procesory majú funkcie na zrýchlenie hľadania prienikov lúčov s hierarchiou ohraničujúcich objemov, čo pomáha zrýchliť všetky varianty ray tracingu a path tracingu, ako aj funkcie akcelerácie neurónových sietí, ktoré sú niekedy užitočné pri renderovaní.

Grafické procesory sú zvyčajne integrované s vysokorýchlostnými pamäťovými systémami, aby podporili požiadavky na priepustnosť čítania a zápisu pri renderovaní v reálnom čase s vysokým rozlíšením, najmä keď renderovanie snímky vyžaduje viacero priechodov. Avšak latencia pamäte môže byť vyššia ako na centrálom procesore, čo môže predstavovať problém, ak kritická cesta v algoritme zahŕňa množstvo prístupov do pamäte. Pri návrhu grafických procesorov sa vysoká latencia považuje za nevyhnutnú (čiastočne preto, že veľké množstvo vlákien zdieľa pamäťovú zbernicu), a robia sa pokusy „skryť“ ju efektívnym prepínaním medzi vláknami, tak aby iné vlákno mohlo vykonávať výpočty, kým prvé vlákno čaká na dokončenie čítania alebo zápisu.

Renderovanie v cloude — spôsob zrýchlenia pracovného procesu 3D-renderovania bez potreby vytvárania lokálnej renderovacej farmy.

Keď boli v 1990-tych rokoch predstavené OpenGL a Direct3D, vznikla potreba využívať tieto API na počítačoch, ktoré nemali hardvérové zrýchlenie pre 3D-grafiku. Boli poskytnuté „záložné“ implementácie renderovania, nevyžadujúce špecializovaný hardvér, a niekedy sa im hovorí „softvérové renderery“ (dnes je hardvérové zrýchlenie takmer vždy dostupné a tieto implementácie bežiace iba na CPU sa používajú predovšetkým na testovanie). V poslednom čase „softvérové renderovanie“ môže tiež znamenať renderovanie, ktoré nepoužíva grafické API, ako sú OpenGL, Metal, Direct3D alebo Vulkan.

Typy rendererov, ktoré v minulosti mohli byť nazývané „softvérovými renderermi“ (napríklad renderery ray tracingu používané pri offline renderovaní filmov), teraz zvyčajne využívajú akceleráciu GPU, často prostredníctvom API ako CUDA alebo OpenCL, ktoré nie sú špecifické pre grafiku. Keďže tieto API umožňujú spúšťať C++ kód na GPU, teraz je možné spúšťať ten istý renderovací kód na CPU aj na GPU.

## Zoznam míľnikov v technikách renderovania
* Ray casting (1968)
* Algoritmus scanline (1969 – 1970)
* Gouraudovo tieňovanie (1971)
* Textúrovanie (1974)
* Z-Buffering (1974)
* Phongovo tieňovanie (1973 – 1975)
* Environmentálne mapovanie (1976)
* Vykresľovanie tieňov (1977)
* Stencil buffer (1978)
* Bump mapping (1978)
* Binárne rozdelenie priestoru (1980)
* Sledovanie lúča (1980)
* Cookovo tieňovanie (1981)
* MIP textúrovanie (1983)
* Sledovanie lúča podľa algoritmu Octree (1984)
* Alfa blending (1984)
* Distribuované sledovanie lúča (1984)
* Rádiozita (1984)
* Polokocka (1985)
* Sledovanie svetelného zdroja (1986)
* Zobrazovacia rovnica (1986)
* Reyes renderovanie (1987)
* Hierarchická rádiozita (1991)
* Mapovanie tónov (1993)
* Podpovrchový rozptyl svetla (Subsurface Scattering) (1993)
* Fotónové mapovanie (1995)
* Metropolis light transport (1997)
* Okamžitá rádiozita (1997)
* Precomputed Radiance Transfer (2002)

## Referencie

## Pozri aj
* Renderovacie jadro prehliadača
* Hardvérové renderovanie
* Softvérové ​​renderovanie
* Predrenderovanie

## Externé odkazy
* "REBUSFarm Render Farm" 
* "Render Farm Service" 
* "Render Farm Online" 
* "Renderovanie v IT4Innovations (Národné superpočítačové centrum)" 

## Zdroj

Kategória:Počítačová grafika
Kategória:Počítačová 3D grafika