5. Rendering - Techniky

Při výpočtu scény je možné využívat různé techniky (algoritmy) pro výpočet finální scény. V současné době jsou relevantní dvě základní techniky pro výpočet 3D scény:


- Rasterizace

- Metoda sledování paprsku (raytracing)


Metoda rasterizace

Tato metoda převádí geometrické objekty na pixely bez uvažování jejich barev, tj. barev daných materiálem a nasvícením, které je nutné dodat pomocí tzv. Shadingu (viz dále). Metoda rasterizace je extrémně rychlá v porovnání např. s raytraingem, proto se používá v mnoha grafických enginech. Obr.1. ukazuje, jak jsou trojúhelníky 2D (popř. 3D) objektu rasetrizovány.


Obr. 1 Rasterizace trojúhelníků

V základu metoda neuvažuje žádné přidané optické efekty (odrazy, lesklé plochy atp.). Je však možné tyto efekty pomocí různých dalších algoritmů dopočítávat.


Raytracing


Metoda raytracingu lépe simuluje fyzikální vlastnosti světla. Finální generovaný obraz pomocí metody sledování paprsku je počítán tak, že skrz rovinu "obrazovky" je (směrem od pozice očí) vysílán paprsek (vektor). Tento paprsek "naráží" na první 3D objekt. Z tohoto objektu je paprsek (typicky však další paprsky) dále odrážen. V tento okamžik může narazit na jiný objekt nebo světelný zdroj. Na základě trajektorie (a na ní nasbíraných dat) a vlastností materiálu povrchu je pak určena barva pixelu na obrazovce - viz Obr. 2.



Obr. 2 Metoda raytracingu

Porovnání

Rasterizace se využívá všude tam, kde cílíme na výpočet v reálném čase. Výsledky metody raytracing jsou mnohem realističtější, avšak je to "zaplaceno" vysokým výpočetním výkonem. Od konce roku 2018 již je možné používat i metody raytraing v reálném čase pro běžné "domácí" účely, a sice díky architektuře RTX od NVidia. Novodobé grafické karty již raytraing v reálném čase svedou, je to samozřejmě vykoupeno nutností vysokého výkonu. 


Zdroje:

Tyto kapitoly jsou dobře zpracovány ve Wikipedii, která v tomto případě byla využita jako zdroj.


https://en.wikipedia.org/wiki/Rasterisation

https://en.wikipedia.org/wiki/Ray_tracing_(graphics)