Photorealistic ray tracing
Ray tracing - metoda sledování paprsků V přírodě světlo putuje jako proud fotonů od zdroje do oka. Fotony interagují s objekty, které odrážejí, pohlcují nebo propouští fotony. Simulace tohoto procesu v počítači klade velké nároky na zdroje jako je výkon procesorů a paměť.
Ray tracing je tedy metoda, která fotorealistické scény vytváří tak, že sleduje paprsek světla obráceně. Nikoliv od zdroje světla k oku, ale od oka ke zdroji. Nezabývá se paprsky, které směřují mimo oko (kameru). Tím se významně snižují nároky na výpočetní výkon. Nevýhodou je, že výsledná scéna není zcela přesná a aby se dosáhlo fotorealistického efektu, používají se složité algoritmy, které výslednou scénu upravují tak, aby se výsledek co nejvíce přiblížil realitě.
S pojmem Ray tracing souvisí pojem Ray casting, neboli vrhání paprsků. Ray casting je často používaná metoda pro vykreslení prostorových scén, zejména pokud je scéna složená z těles, která se složitě převádí na polygony. Tato metoda se často používá v CAD, které využívají konstruktivní geometrii těles CSG (Constructive Solid Geometry), kdy se složitější tělesa vytvářejí pomocí booleovských operací (sjednocení, průnik a rozdíl) z jednoduchých trojrozměrných tvarů (koule, kužel, válec).
Princip metody Ray castingu spočívá v tom, že se přes jednotlivé pixely obrazovky vysílají pomyslné paprsky. Zjišťuje se pak, jestli tyto paprsky dopadnou na objekty virtuálního 3D modelu. Pokud jde o neprůhledná tělesa, zajímá nás jen průsečík, který je nejblíže k pozorovateli (další průsečíky nejsou z pozice oka pozorovatele viditelné). V místě průsečíku paprsku s nejbližším povrchem se provede výpočet světelných poměrů, podle dalších pomyslných paprsků, k jednotlivým světelným zdrojům. Pokud je zdroj světla z místa průsečíku viditelný, určí se barva na základě velikosti odchylky k normálovému vektoru, nebo pokud je zdroj zakrytý, vytvoří se stín. Pokud paprsek žádný objekt neprotne, pak pixel bude mít barvu pozadí.
Velkým problémem je potažení objektu texturou, zejména u 2D textur (nasnímaná bitmapa) může dojít i k velkým odchylkám. Tento problém je menší u 3D textur.
Ray tracing, je rozšířením metody Ray casting o sledování dalších paprsků, podle odrazivosti a průhlednosti těles. Teoreticky je počet sledovaných sekundárních paprsků nekonečný. Představte si sledování paprsku mezi dvěma lesklými povrchy, kde dochází k odrazům odrazů. Proto bývají výpočty sekundárních paprsků omezeny, většinou na 3-4 odrazy, kdy bývá již dosaženo dobrého fotorealistického zobrazení.
Doporučené odkazy:
- Vynikající článek Pavla Tišnovského na root.cz: Vykreslujeme 3D scény s POV-Ray
- Raycasting Java Applet stránky s appletem, který demonstruje základní principy metody Ray casting
Zpět na Vytváření prezentací