Raytracing

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.

Raytracing 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. Raytracing 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 raytracingu 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 raytracing nebol použitý, neboli prítomné.[3]

Raytracing v praxi[upraviť | upraviť zdroj]

Raytracing 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. Raytracing 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 technológie raytracingu 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 raytracingu[upraviť | upraviť zdroj]

Forward raytracing[upraviť | upraviť zdroj]

Forward raytracing 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 raytracing[upraviť | upraviť zdroj]

Na zefektívnenie raytracingu sa zavádza metóda backward raytracing. 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 raytracing[upraviť | upraviť zdroj]

Je kombinácia forward a backward raytracingu, 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.