Obsah
Ray tracing (Sledování paprsků)
Ray tracing (česky sledování paprsků) je metoda vykreslování (renderingu) počítačové grafiky, která simuluje fyzikální chování světla. Výsledkem jsou extrémně fotorealistické obrazy obsahující věrné odrazy, lomy světla přes průhledné materiály, měkké stíny a globální osvětlení.
Dlouhá léta byl ray tracing výsadou filmových studií (např. Pixar), kde vykreslení jednoho snímku trvalo hodiny až dny. S nástupem hardwarové akcelerace se však stal dostupným i v reálném čase, zejména v moderních videohrách.
Princip fungování
Klasický (tzv. rasterizační) přístup promítá 3D objekty na 2D obrazovku a zjišťuje, jakou mají barvu. Ray tracing na to jde obráceně – napodobuje lidské oko nebo čočku kamery:
- Vyslání paprsků: Z „kamery“ (pohledu pozorovatele) je vyslán virtuální paprsek skrze každý pixel na obrazovce do 3D scény.
- Nalezení průsečíku: Algoritmus matematicky počítá, do jakého objektu ve scéně paprsek narazí jako první.
- Sekundární paprsky: Jakmile paprsek narazí na povrch (např. sklo, vodu nebo zrcadlo), algoritmus zjistí vlastnosti materiálu a vyšle další (sekundární) paprsky:
- Odraz (Reflection): Paprsek se odrazí podle úhlu dopadu.
- Lom (Refraction): Paprsek projde skrz objekt a změní směr (např. průhled přes sklenici vody).
- Stíny (Shadow rays): Od bodu dopadu se vyšle paprsek přímo ke světelnému zdroji. Pokud mu v cestě stojí jiný objekt, bod je ve stínu.
- Sloučení barev: Konečná barva pixelu se vypočítá sečtením všech těchto informací.
Ray tracing a datové struktury (k-d stromy a BVH)
Největším problémem ray tracingu je extrémní výpočetní náročnost. Moderní 3D scény obsahují miliony polygonů (trojúhelníků). Kdyby měl každý paprsek testovat průsečík s každým polygonem, výpočet by se zhroutil.
Zde vstupují do hry prostorové datové struktury:
- k-d stromy: Historicky se velmi často používaly pro rozdělení scény. Paprsek díky nim testuje pouze ty polygony, které leží v jeho dráze (protínají daný sektor stromu), místo aby procházel celou databázi.
- BVH (Bounding Volume Hierarchy): Dnes nejpoužívanější alternativa. Obaluje objekty do stále menších boxů (kvádrů). Pokud paprsek mine velký mateřský box (např. celou budovu), algoritmus rovnou ví, že nemusí testovat miliony polygonů uvnitř, a přeskočí celou větev.
Offline vs. Real-time Ray tracing
| Vlastnost | Offline Ray tracing (Filmy, CGI) | Real-time Ray tracing (Hry) |
|---|---|---|
| Počet paprsků na pixel | Tisíce (plný path tracing) | Jednotky (1 až 5) + Denoising (AI vyhlazování) |
| Doba vykreslení snímku | Minuty, hodiny až dny | Milisekundy (< 16 ms pro 60 FPS) |
| Zpracování | CPU farmy a masivní GPU centra | Dedikovaná hardwarová jádra v GPU (RT Cores) |
| Limity a kompromisy | Omezeno pouze kapacitou RAM / VRAM | Omezený počet „odrazů“, nutnost dopočítávat šum |
Hardwarová revoluce (NVIDIA RTX a další)
Přelomovým momentem pro ray tracing v reálném čase bylo představení architektury NVIDIA Turing (řada RTX 2000) v roce 2018. Tyto grafické karty jako první přinesly speciální hardwarové obvody, tzv. RT Cores (Ray Tracing jádra), jejichž jediným úkolem je bleskově provádět testy průsečíků paprsku s BVH boxy a trojúhelníky.
Dnes technologii hardwarového ray tracingu podporují i karty AMD (Radeon RX), grafiky od Intelu nebo herní konzole aktuální generace (PlayStation 5, Xbox Series X/S).
