Photorealistic real time ray tracing

Z cadwiki
Přejít na: navigace, hledání

Tradiční Ray Tracing

3D scéna se rendruje tak, že, zjednodušeně řečeno:

Skrz pixely 2D obrazovky se vrhají virtuální paprsky, které dopadají na objekty, které jsou složeny z plochých i zakřivených povrchů. Když na objekt dopadne paprsek světla, objekt vrhá odražené paprsky, kterými se testuje osvětlení jiných objektů nepřímým, odraženým, světlem. Raytracer také kontroluje zda povrch původní paprsek odrazí, zalomí, nebo jen prostě změní barvu povrchu.

Díky své rekurzivní podstatě metoda dokáže vyrenderovat scénu v jednom průchodu programem.

Real-time Ray Tracing

Real-time ray tracing se již komerčně používá ve výkonných serverech a pomalu proniká i do běžnějších počítačů. Tři vylepšení snižují dobu potřebnou na vytvoření jednoho snímku z řádu hodin na zlomky sekund.

  1. Virtuální paprsky jsou zpracovávány paralelně. Algoritmus nejprve rozdělí paprsky s podobnými vlastnostmi do skupin. Nad všemi paprsky ve skupině se pak provede stejná sada operací. Každá skupina se zpracovává stejným programovým vláknem (thread).

Nové vícejádrové procesory dokáží zpracovávat i přes deset takových vláken současně.

  1. Optimalizační algoritmy rozdělí 3D scénu do hierarchické struktury, zvané kD-strom, který je sestaven tak, že každá větev klade zhruba stejné nároky na výpočetní výkon. Místo toho, aby se každý paprsek testoval proti všem objektům, renderer prochází strom od "kořene" k "listům" a nachází jen větve s objekty, které může zasáhnout, některé přitom ignoruje.
  2. Na univerzitě v Saarlandu byly v roce 2005 vyvinuty prototypy optimalizovaných procesorů, které již při 66 megahertz výkonnostně překonávají 2600 megahertz Pentium-4. Odhaduje se, že v komerčních verzích “Ray Processing Unit”, neboli RPU, by měla mít až 50 krát větší výkon, což je více než dostatečné pro renderování scén v reálném čase.

Zpět na Vytváření prezentací