Ray tracing

z Wikipédie, slobodnej encyklopédie
The ray-tracing algorithm builds an image by extending rays into a scene and bouncing them off surfaces and towards sources of light to approximate the color value of pixels.
The ray-tracing algorithm builds an image by extending rays into a scene and bouncing them off surfaces and towards sources of light to approximate the color value of pixels.

Ray-tracing je spôsob vykresľovania trojrozmernej grafiky s veľmi komplexnými svetelnými interakciami. To znamená, že môžete vytvárať scény plné zrkadiel, priehľadných povrchov a tieňov s výsledkom nerozlučiteľným s realitou.[1]

V prírode pochádzajú lúče zo zdroja svetla (napr. zo slnka) a nakoniec zasiahnu ľudské oko. Algoritmus Ray-Tracing sleduje tento proces opačne: z oka (ako virtuálnej kamery) do scény. Vypočítajú sa body, v ktorých tieto lúče dopadajú na geometrické objekty.[2]

Zaujímavosťou Ray-Tracingu je aj to, že na rozdiel od jednoduchších algoritmov, berie do úvahy aj okolie scény. To znamená až aj objekty ktoré sa priamo nenachádzajú vo viditeľnej scéne, ako sú napríklad slnko alebo mraky, môžu mať odrazy vo viditeľnej scéne, ktoré by v prípade žeby Ray-Tracing nebol použitý, neboli prítomné.[3]

Ray-Tracing v praxi[upraviť | upraviť zdroj]

Ray-Tracing je už dlhšiu dobu využívaný vo viacerých hollywoodskych filmoch, ako napríklad Cars (2006) a The Toy Story (1995). Aké limitácie teda spôsobili, že sa k spotrebiteľom dostal až o 20 rokov neskôr?

Dôvodom je jeho cena. Ray-Tracing je výpočtovo veľmi náročný. Produkčné štúdia ako Pixar Animation Studios využívajú tzv. serverové farmy, pre ktoré môže trvať vykreslenie jednej komplexnej scény aj niekoľko dní.

Videohry vyžadujú takéto vykresľovanie v reálnom čase, a to v množstve 30, 60, až 240 snímok za sekundu. Aj napriek tomu že sa v poslednej dobe Ray-Tracing technológie prudko vyvíjajú, na to, aby bolo každú scénu možné v reálnom čase takto vykresliť, bude potrebné ešte niekoľko rokov technologického pokroku.[3]

Typy Ray-Tracingu[upraviť | upraviť zdroj]

Forward Ray-Tracing[upraviť | upraviť zdroj]

Forward Ray-Tracing sleduje lúče od zdroja svetla k objektu. Hoci dokáže najpresnejšie určiť sfarbenie každého objektu, je vysoko neefektívne, keďže sa veľa lúčov zo zdroja svetla nikdy nedostane cez zornú plochu.

Backward Ray-Tracing[upraviť | upraviť zdroj]

Na zefektívnenie Ray-Tracingu sa zavádza metóda backward Ray-Tracing. Pri spätnom sledovaní lúčov sa v oku vytvorí očný lúč, ktorý prechádza cez zornú plochu a ďalej do sveta. Prvý objekt, ktorý očný lúč zasiahne bude viditeľný.

Hybrid Ray-Tracing[upraviť | upraviť zdroj]

Je kombinácia forward a backward Ray-Tracingu, ktorá sľubuje využiť výhody oboch predošlých metód. Jej výsledkom by malo byť efektívnejšie využitie zdrojov, ako predošlé dve metódy.[4]

Referencie[upraviť | upraviť zdroj]

  1. Ray Tracing: Graphics for the Masses [online]. dl.acm.org, [cit. 2022-12-01]. Dostupné online. DOI:10.1145/270955.270962
  2. POHLBLOGGERMARCH 30, Daniel; 2011. Sponsored Feature: Changing the Game - Experimental Cloud-Based Ray Tr [online]. Game Developer, [cit. 2022-12-01]. Dostupné online. (po anglicky)
  3. a b Ray Tracing in Games: How does it work? - Tech Centurion [online]. www.techcenturion.com, [cit. 2022-12-01]. Dostupné online. (po anglicky)
  4. cs.stanford.edu, [cit. 2022-12-01]. Dostupné online.