Ray tracing

Sledování paprsku (dt. Sledování paprsku nebo sledování paprsku , v anglickém hláskování obvykle ray tracing ) je na emisi záření založeném algoritmu pro zakrývacího výpočet , který je, z stanovit viditelnost trojrozměrných předmětů od určitého bodu v prostoru . Ray tracing se také používá k popisu několika rozšíření této základní metody, které vypočítávají další dráhu paprsků poté, co dopadnou na povrchy.

Ray tracing je nejvýrazněji používán ve 3D počítačové grafice . Zde je základní algoritmus sledování paprsku jedním ze způsobů, jak reprezentovat 3D scénu . K výpočtu rozložení světla se používají rozšíření, která simulují dráhu světelných paprsků scénou, podobně jako metoda radiozity .

Dalšími oblastmi použití pro sledování paprsků jsou auralizace a vysokofrekvenční technologie .

Obrázek vypočítaný pomocí sledování paprsků

Původ a význam

Díky sledování paprsků lze generovat fotorealistické obrázky.

Než bylo vyvinuto sledování paprsků, mladé pole 3-D počítačové grafiky v podstatě sestávalo ze série „programovacích triků“ navržených tak, aby napodobovaly stínování osvětlených objektů. Ray tracing byl první algoritmus v oboru, který dával nějaký fyzický smysl.

První snímek sledovaný paprskem byl zobrazen na obrazovce podobné osciloskopu na University of Maryland v roce 1963 . Arthur Appel , Robert Goldstein a Roger Nagel , kteří algoritmus publikovali na konci 60. let, jsou často považováni za vývojáře algoritmu pro sledování paprsku . Dalšími badateli, kteří v té době studovali techniky sledování paprsků, byli Herb Steinberg , Marty Cohen a Eugene Troubetskoy . Ray tracing je založen na geometrické optice , ve které je světlo chápáno jako skupina paprsků. Techniky používané při sledování paprsku byly mimo jiné použity mnohem dříve výrobci optických systémů . Dnes mnoho rendererů (počítačové programy pro generování obrázků z 3D scény) používá ray tracing, případně v kombinaci s jinými metodami.

Jednoduché formy sledování paprsku vypočítávají pouze přímé osvětlení, tj. Světlo přicházející přímo ze světelných zdrojů. Od prvního použití v počítačové grafice se však ray tracing několikrát výrazně rozšířil. Rozvinutější tvary také berou v úvahu nepřímé světlo odražené od jiných předmětů; člověk pak hovoří o metodě globálního osvětlení .

Termín raycasting většinou popisuje zjednodušenou formu ray tracingu , ale někdy se také používá synonymně.

Zdůvodnění

Vytvoření rastrového obrázku z 3D scény se nazývá vykreslování nebo syntéza obrazu . Takovou scénu uživatel nejprve vytvoří pomocí nástroje pro 3D modelování .

V popisu scény jsou uvedena alespoň následující data:

  • poloha elementárních primitivů , jako jsou polygony nebo koule , které tvoří objekty scény;
  • že místní světelné modely a jejich parametry, které určují barvy a materiály jednotlivých objektů ve scéně;
  • světelné zdroje scény.

Kromě toho je při sledování paprsku specifikována poloha bodu oka a roviny obrazu , které společně udávají perspektivu, ze které je scéna sledována. Oční bod je bod v prostoru, který odpovídá poloze virtuální kamery nebo obecného pozorovatele. Rovina obrazu je virtuální obdélník, který je v určité vzdálenosti od bodu oka. Jedná se o trojrozměrný ekvivalent rastrového obrázku, který má být vykreslen v prostoru. Body distribuované ve formě mřížky v rovině obrázku odpovídají pixelům rastrového obrázku, který má být generován.

Výpočet okluze

Princip sledování paprsku: Z očního bodu je paprsek odeslán přes pixel v obrazové rovině a testován na další průnik se scénou. Pixel je odpovídajícím způsobem zbarven.
K tažení loutny se používá technika podobná ray tracingu (dřevoryt od Albrechta Dürera , 1525)

Ray tracing je především metoda pro výpočet okluze , tj. Pro stanovení viditelnosti předmětů z očního bodu. Základní princip je docela jednoduchý.

Ray tracing pracuje s datovou strukturou nazývanou paprsek, která určuje počáteční bod a směr polopřímky v prostoru. Pro každý pixel je vypočítán směr paprsku, který směřuje od bodu oka k odpovídajícímu pixelu v obrazové rovině. Pro každý primitiv scény je pomocí geometrické metody určen možný průsečík bodu, ve kterém paprsek zasáhne primitiva. V případě potřeby se vypočítá vzdálenost od bodu oka k bodu průniku. „Vítěz“, tj. Primitiv viditelný z očního bodu, je ten s nejmenší vzdáleností.

Princip emise paprsků z očního bodu je podobný struktuře dírkové komory , ve které je předmět zobrazen na filmu. Při sledování paprsků se však prohodí „film“ (rovina obrazu) a „díra“ (oční bod). Podobně jako u dírkové komory určuje vzdálenost mezi rovinou obrazu a očním bodem „ ohniskovou vzdálenost “ a tím i zorné pole .

Protože paprsky nevycházejí ze světelných zdrojů, jako v přírodě, ale z očního bodu, hovoří se také o zpětném sledování paprsků . Ray tracing se zabývá otázkou, odkud světlo pochází. Některé publikace však tento proces nazývají dopředné sledování paprsku nebo sledování paprsku oka.

Křižovatkové zkoušky

Výše uvedený test možného průniku paprsku a primitiva je srdcem sledování paprsku. Takové testy lze formulovat pro různé primitivní typy. Kromě trojúhelníků a koulí jsou možné i válce , kvadriky , mračna bodů nebo dokonce fraktály .

Pro sféry je průsečíkový test relativně krátký a jednoduchý postup, který vysvětluje popularitu těchto objektů na testovacích obrazech sledovaných paprsky. Kvůli jednoduchosti však mnoho programů pro vykreslování povoluje jako primitiva pouze trojúhelníky , ze kterých lze přibližně skládat jakýkoli objekt.

Složitější geometrie, jako například NURBS , byly nedávno použity pro křižovatkový test. Zde je výhodná maximální přesnost, protože povrch není rozdělen jako obvykle. Nevýhodou je delší doba vykreslování, protože test průniku se složitými plochami volného tvaru je časově mnohem náročnější než u jednoduchých trojúhelníků. Dostatečná aproximace přesnosti NURBS je možná také pomocí trojúhelníků, ale v tomto případě je třeba vybrat velmi velké číslo.

Stínování

Při určování dalšího primitiva se vypočítává nejen průsečík a jeho vzdálenost k bodu oka, ale také normála primitiva v místě průniku. To znamená, že jsou k dispozici všechny informace k určení „intenzity světla“ odraženého do očního bodu a tím i barvy. Používají se také popisy světelných zdrojů ve scéně. Výpočty jsou založeny na lokálních modelech osvětlení, které simulují materiálové vlastnosti objektu. Tato část vykreslovače, která je zodpovědná za určení barvy, se nazývá shader .

Ukázkový kód

Programování jednoduchého paprskového sledovače vyžaduje malé úsilí. Princip lze v pseudokódu znázornit následovně:

Prozedur Bild_Rendern
    Strahl.Ursprung := Augpunkt
    Für jedes (x,y)-Pixel der Rastergrafik
        Strahl.Richtung := [3D-Koordinaten des Pixels der Bildebene] − Augpunkt
        Farbe des (x,y)-Pixels := Farbe_aus_Richtung(Strahl)
Funktion Farbe_aus_Richtung(Strahl)
    Schnittpunkt := Nächster_Schnittpunkt(Strahl)
    Wenn Schnittpunkt.Gewinner = (kein) dann
        Farbe_aus_Richtung := Hintergrundfarbe
    sonst
        Farbe_aus_Richtung := Farbe_am_Schnittpunkt(Strahl, Schnittpunkt)
Funktion Nächster_Schnittpunkt(Strahl)
    MaxDistanz := ∞
    Schnittpunkt.Gewinner := (kein)
    Für jedes Primitiv der Szene
        Schnittpunkt.Distanz := Teste_Primitiv(Primitiv, Strahl)
        Wenn Schnittpunkt.Distanz < MaxDistanz dann
            MaxDistanz := Schnittpunkt.Distanz
            Schnittpunkt.Gewinner := Primitiv
    Nächster_Schnittpunkt := Schnittpunkt

Každý raytracer, bez ohledu na použitou variantu raytracingu, má podobnou strukturu, která obsahuje také test průniku ( Teste_Primitiv ) a shader ( Farbe_am_Schnittpunkt ).

Napájení

Zrychlovací techniky

Při určování prvního primitiva, se kterým se paprsek setká, může být každý primitiv ve scéně testován proti paprsku, jako v příkladu kódu výše. To však není v zásadě nutné, pokud je známo, že určitá primitiva se v blízkosti paprsku stejně nenacházejí, a proto je nelze zasáhnout. Vzhledem k tomu, že křižovatkové testy vyžadují nejdelší dobu běhu při sledování paprsku, je důležité testovat proti paprsku co nejméně primitivů, aby byla celková doba běhu nízká.

Příklad akcelerační techniky: mřížka Voxel (pohled shora). Na křižovatce je třeba testovat pouze primitivy voxelů, kterými paprsek prochází (zbarveno šedě). Celkem je potřeba otestovat pouze dva trojúhelníky.

U akcelerační metody je scéna obvykle v nějaké formě automaticky rozdělena a primitivům jsou přiřazena tato členění. Když paprsek bloudí scénou, není testován proti primitivům, ale nejprve proti subdivizím. V důsledku toho musí být paprsek testován pouze proti primitivům subdivize, kterou paprsek prochází.

Pro sledování paprsku byla vyvinuta celá řada takových akceleračních technik. Příklady schémat dělení jsou voxelové mřížky , BSP stromy a ohraničující svazky, které uzavírají primitivy a tvoří hierarchii. Oblíbené jsou také smíšené formy těchto technik. Pro animace existují také speciální akcelerační techniky . Složitost těchto technik může rychle přenést paprskový sledovač do většího projektu.

Žádná technologie není obecně optimální; účinnost závisí na scéně. Nicméně každá akcelerační metoda enormně zkracuje dobu běhu a dělá sledování paprsku praktickým algoritmem. Dělení založená na stromech Kd je nejúčinnější nebo téměř nejefektivnější technikou pro většinu neanimovaných scén, protože je lze optimalizovat pomocí heuristiky . Několikrát bylo zjištěno, že asymptotická doba sledování paprsku je logaritmická v závislosti na počtu primitiv .

Ukázalo se, že na moderních počítačích rychlost sledování paprsků neomezuje výkon procesoru, ale přístup do paměti. Pečlivé použití ukládání do mezipaměti algoritmem umožňuje výrazně zkrátit dobu běhu. Je také možné použít schopnost SIMD moderních procesorů, které umožňují paralelní výpočty, a také speciálně optimalizovaná schémata dělení. To umožňuje současné sledování několika paprsků kombinovaných v „balíčcích“. Důvodem je to, že paprsky vyzařované očním bodem jsou obvykle velmi podobné, tj. Obvykle protínají stejné objekty. S instrukční sadou SSE lze například testovat současně čtyři paprsky na průsečík s primitivem, což tento výpočet mnohonásobně zrychluje. Na vhodných hardwarových implementacích - například na FPGA  - lze sledovat také větší pakety s více než 1000 paprsky. Ukládání do mezipaměti a optimalizace SIMD pro pokročilé formy sledování paprsků však ztrácejí velkou část své rychlosti.

Je také možné paralelizovat celý proces sledování paprsku . Toho lze dosáhnout triviálním způsobem, například že různé procesory nebo stroje vykreslují různé části obrazu. Aby byly vhodné pro paralelizaci, musí být upraveny pouze určité akcelerační techniky nebo rozšíření.

Požadavky na paměť

Základní metoda sledování paprsků téměř nevyžaduje žádnou paměť. Samotná scéna, která je v dnešní době často složena z několika milionů primitivů ve složitých scénách, však zabírá velkou paměť a může obsahovat několik gigabajtů . Kromě toho existuje více či méně vysoký požadavek na dodatečnou paměť akceleračních technologií. Protože se tak velké scény úplně nevejdou do hlavní paměti počítače , je často nutné prohození .

V případě větších objektů, které se ve scéně objeví několikrát a liší se pouze svou polohou a velikostí (např. V lese plném stromů), nemusí být celá geometrie znovu uložena. Tato technika, nazývaná instancování , může v určitých scénách ušetřit značný prostor.

Rozšíření

Jedním z důvodů úspěchu sledování paprsků je jeho přirozená rozšiřitelnost. Výše popsaná primitivní metoda je pro dnešní požadavky na syntézu obrazu nedostatečná. S rostoucím výpočetním výkonem a rostoucí inspirací z fyziky - zejména optiky a radiometrie  - vzniklo několik rozšíření a variant, z nichž některá zde budou stručně představena.

V podstatě s každým rozšířením se dosažitelná kvalita vykreslených obrázků a relativní požadovaný čas prudce zvýšily a dosáhly maxima s trasováním cesty. Pouze další vývoj byl zaměřen na zkrácení času potřebného pro trasování trasy, aniž by byla obětována kvalita.

stín

Simulace stínů

Díky flexibilitě algoritmu pro sledování paprsků je možné vyzařovat světelné paprsky nejen z očního bodu, ale také z jakéhokoli jiného bodu v prostoru. Jak Arthur Appel předvedl v roce 1968, lze to použít k simulaci stínů .

Jakýkoli bod na povrchu je ve stínu právě tehdy, pokud je mezi ním a zdrojem světla nějaký předmět. Vyzařováním stínového paprsku z průsečíku na povrchu ve směru světelného zdroje lze určit, zda objekt překračuje svou dráhu. Pokud tomu tak je, je průsečík ve stínu a 0 je vrácena jako jas paprsku. V opačném případě dojde k normálnímu zastínění.

Rekurzivní sledování paprsku

Jeden z prvních rekurzivních snímků se sledováním paprsků, publikoval Turner Whitted v roce 1980

Ray tracing lze použít nejen na jednoduché neprůhledné objekty , ale také na průhledné a zrcadlové, reflexní objekty. Další světelné paprsky jsou vyzařovány z průsečíkových bodů. V případě reflexních povrchů je třeba v souladu se zákonem odrazu zohlednit pouze směr paprsku vycházejícího z povrchu (úhel dopadu se rovná úhlu odrazu) a vypočítat odpovídající odrazný paprsek .

V případě průsvitných předmětů je paprsek vyzařován v souladu se Snellovým zákonem lomu , tentokrát do vnitřku předmětného objektu. Průhledné předměty obecně také odrážejí část světla. Relativní barevné složky odraženého a lomeného paprsku lze vypočítat pomocí Fresnelových vzorců . Tyto paprsky se také nazývají sekundární paprsky .

Protože sekundární paprsky mohou dopadat na jiné objekty, algoritmus se nazývá rekurzivně , aby umožnil vícenásobné odrazy a lomy světla. Hierarchická úplnost hovorů se také nazývá strom vykreslování .

Rekurzivní sledování paprsků bylo vyvinuto společností Kay a Whitted kolem roku 1980.

V pseudokódu vypadá shader pro rekurzivní paprskové trasování asi takto:

Funktion Farbe_am_Schnittpunkt(Strahl, Schnittpunkt)
    Wenn Schnittpunkt.Gewinner.Material = spiegelnd oder transparent dann
        Reflektierter_Anteil := Fresnel(Strahl, Schnittpunkt)
        Farbe := Reflektierter_Anteil × Farbe_aus_Richtung(Reflexionsstrahl)
               + Gebrochener_Anteil × Farbe_aus_Richtung(Gebrochener Strahl)
    sonst
        Farbe := 0
        Für jede Lichtquelle
            Schattenstrahl := Lichtquelle.Position - Schnittpunkt.Position
            SchattenSchnittpunkt := Nächster_Schnittpunkt(Schattenstrahl)
            Wenn SchattenSchnittpunkt.Gewinner = Lichtquelle dann
                Farbe := Farbe + Direkte_Beleuchtung(Strahl, Lichtquelle)
    Farbe_am_Schnittpunkt := Farbe

Zbytek programu může zůstat jako u jednoduchého sledování paprsku. Zde volaná funkce Color_aus_Direction může zase volat Color_at_Schnittpunkt , ze kterého se rekurzivní charakter metody vyjasní.

Difúzní paprskové trasování

Rekurzivní paprskové trasování umožňuje kromě lomu a odrazu i simulaci tvrdých stínů. Ve skutečnosti však mají světelné zdroje určitou velikost, díky čemuž se stíny zdají být měkké a rozmazané.

Tento efekt, stejně jako antialiasing , lesklý odraz a další, lze simulovat pomocí difuzního paprskového trasování (nazývaného také stochastické paprskové trasování nebo distribuované paprskové trasování ), které vyvinuli Cook a kol. V roce 1984. bylo zveřejněno. Cílem je vyslat několik paprsků místo jednoho paprsku v různých situacích a z vypočítaných barev vytvořit střední hodnotu. Měkké stíny s umbrou a penumbrou lze například generovat náhodným snímáním směru stínových paprsků po povrchu světelného zdroje. Nevýhodou je, že pokud použijete příliš málo paprsků, bude docházet k šumu obrazu. Existují však způsoby, jako je vzorkování důležitosti, které mohou hluk snížit.

Trasování cesty a trasování světelným paprskem

Globální osvětlení pomocí sledování paprsků. Účinky, jako je žíravina pod skleněnou koulí a „odírání“ stěn na jiných površích, jsou jasně vidět.

I když sledování pomocí difuzního paprsku umožňuje řadu efektů, stále není schopno simulovat globální osvětlení s efekty, jako je difúzní interreflexe a kaustika ( světlé skvrny světla vytvářené svazkováním světla). To je způsobeno skutečností, že sekundární paprsky jsou emitovány v případě zrcadlových odrazů, ale ne v případě difúzních povrchů.

V jeho 1986 publikaci James Kajiya popsal na zobrazovací rovnice , které tvoří matematický základ pro všechny metody globálního osvětlení. „Jas“ vytvářený paprskem je interpretován radiometricky správně jako záření . Kajiya ukázal, že pro globální osvětlení musí být sekundární paprsky emitovány ze všech povrchů. Rovněž poukázal na to, že renderovací strom má tu nevýhodu, že se při výpočtech promrhá příliš mnoho práce ve velké hloubce hierarchie a že je lepší vyslat jeden paprsek najednou. Tato metoda je dnes známá jako trasování dráhy , protože paprsek hledá svou „cestu“ scénou z očního bodu. Trasování cesty má přísný matematický a fyzický základ.

Pokud sekundární paprsek vyzařovaný difuzním povrchem narazí na světelný zdroj přímo během trasování dráhy, je tato složka jasu obvykle ignorována. Místo toho se podíl přímého osvětlení stále vypočítává pomocí stínového paprsku. Alternativně lze přímé osvětlení vypočítat tak, že podle lokálního modelu osvětlení je vyzařován pouze jeden sekundární paprsek, a pokud to přímo zasáhne světelný zdroj, vrátí se jeho záření. Která z těchto dvou metod je účinnější, závisí na modelu místního osvětlení povrchu a na pevném úhlu světelného zdroje při pohledu z povrchu . Koncepčně jednodušší varianta trasování dráhy, ve které se nevyzařují žádné stínové paprsky, je známá jako pomocné fotonové trasování .

Ačkoli trasování cesty může simulovat globální osvětlení, metoda se stává méně efektivní s malými světelnými zdroji. Zejména kaustika a její odrazy jsou při sledování dráhy velmi hlučné, pokud nevyzařuje mnoho paprsků. Z tohoto důvodu se obvykle používají jiné metody nebo rozšíření založená na trasování cesty.

Trasování světelným paprskem je vzácná varianta, kdy světelné paprsky nejsou emitovány z očního bodu, ale ze světelných zdrojů. Pixely, které jsou zasaženy paprskem v rovině obrazu, jsou barevné. To znamená, že určité efekty, jako je kaustika, lze dobře simulovat, ale jiné efekty lze simulovat pouze velmi neefektivně, protože mnoho paprsků míjí obrazovou rovinu.

Další vývoj

Protože některé efekty lze dobře simulovat pouze z očního bodu, jiné pouze ze světelných zdrojů, byly vyvinuty algoritmy, které kombinují obě metody. Cílem je být schopen efektivně vykreslovat scény s distribucí světla a odrazem jakékoli složitosti.

Obousměrné trasování cesty ,
Nezávisle vyvinutý v letech 1993 a 1994 Lafortune / Willems a E. Veach / Leonidas J. Guibas , je přímým rozšířením trasování dráhy , ve kterém jsou paprsky vysílány jak z očního bodu, tak ze světelných zdrojů a obě cesty jsou poté kombinovány. Body dopadu dráhy světla se používají jako bodové virtuální zdroje světla k osvětlení dráhy oka. Na obousměrné trasování dráhy lze pohlížet jako na zobecnění trasování dráhy, sledování fotonů nebo trasování světelným paprskem, protože zohledňuje výměnu světla mezi všemi možnými kombinacemi bodů dopadu obou cest. Procedura obvykle nabízí lepší výkon než čisté trasování cesty, zejména při výpočtu kaustiky, ale její problémy zcela neodstraňuje.
Metropolis Light Transport (MLT)
je rozšířením obousměrného trasování cesty a byl představen v roce 1997 Veachem a Guibasem. U MLT jsou světelné paprsky vyzařovány takovým způsobem, že se přizpůsobí osvětlení a „prozkoumají“ scénu. Myšlenkou tohoto procesu není nevyhodit „dobré“ kombinace cest, přes které se přenáší spousta energie, bezprostředně poté, co byly nalezeny, ale pokračovat v jejich používání. MLT často nabízí výrazné rychlostní výhody a rozumné výsledky pro scény, které je obtížné správně simulovat pomocí jiných (předchozích) algoritmů. Stejným způsobem jako trasování cesty a obousměrné trasování cesty poskytuje MLT statisticky nezaujaté obrázky, pokud jsou implementovány vhodně , to znamená, že jedinou odchylkou od ideálního obrazu je šum obrazu; jiné chyby jsou vyloučeny.
Obraz vykreslený pomocí fotonového mapování; To, co lze vidět, je žíravina, která je pomocí tohoto algoritmu efektivně simulována.
Mapování fotonů
vydalo nakladatelství Jensen v roce 1995. Proces spočívá v emitování částic ze světelných zdrojů a jejich ukládání do speciální struktury, která je nezávislá na geometrii. Tento algoritmus byl průlomový v tom, že umožnil uložit osvětlení v kroku předzpracování a relativně rychle jej zrekonstruovat během procesu vykreslování.
Mapování fotonů není samostatný proces vykreslování, ale slouží k doplnění dalších metod sledování paprsků - většinou k rozšíření rozptýleného sledování paprsků na globální osvětlení. Mapování fotonů však nesplňuje očekávání, jeho přesnost je obtížné intuitivně ovládat a je méně robustní než MLT. To je zvláště patrné ve scénách s obtížnými světelnými podmínkami.

přehled

Ray tracing process stín Odraz světla / lom světla / rozptyl osvětlení Příklad obrázku
Pouze výpočet maskování Ne Ne Ne Box - Visibility.png
Simulace stínů
(pouze s jedním stínovým paprskem)
Pouze tvrdé stíny Ne Pouze přímé osvětlení Box - DirectShadows.png
Rekurzivní sledování paprsku Pouze tvrdé stíny Pouze s reflexními / lomivými povrchy Pouze přímé osvětlení nebo odraz / lom světla Box - DirectRecursive.png
Difúzní paprskové trasování Zcela Pouze s reflexními / lomivými povrchy Pouze přímé osvětlení nebo odraz / lom světla Box - Distributed.png
Trasování trasy
(a následné postupy)
Zcela Kompletní (také difúzní ) Kompletní ( globální osvětlení ) Box - Path Tracing High.png

Speciální

Uvedené běžné varianty sledování paprsků lze rozšířit tak, aby umožňovaly další efekty. Nějaké příklady:

Konstruktivní pevná geometrie (CSG)
je běžná metoda modelování, ve které jsou objekty sestavovány z jiných objektů. Ray tracing lze poměrně snadno rozšířit o funkce CSG.
Mapování textury
stejně jako posunutí mapování a nárazové mapování jsou také možné pro sledování paprsku. U posledně uvedené metody je však třeba dbát na to, aby generované směry odrazu vždy směřovaly od objektu.
Rozptyl objemu
umožňuje realistickou simulaci částečně průsvitných předmětů a předmětů, které rozptylují světlo. Patří sem například mléko nebo listy , ale také modrá obloha a atmosférické podmínky.
Spektrální vykreslování
Většina běžných paprskových sledovačů používá k znázornění barev barevný prostor RGB , což je pouze aproximace spojitého světelného spektra a není vždy fyzicky věrohodná. Použitím zobrazení pro barvu, která je závislá na vlnové délce světla, lze simulovat efekty jako metamerismus a disperze . Je také možná polarizace a fluorescence .
Vykreslování vysokého dynamického rozsahu
Výpočtem hodnot barev v paprskovém sledování pomocí čísel s plovoucí desetinnou čárkou a jejich uložením do HDR snímků s vysokým kontrastním rozsahem je možné následně změnit jas a kontrast vykreslených obrázků bez ztráty kvality. Při osvětlení založeném na obrázku je vykreslená scéna uzavřena do obrazu HDR, který umožňuje realistické osvětlení zaznamenaného prostředí.
Relativistické sledování paprsků
Uvažováním vzorců pro speciální teorii relativity lze ilustrovat optické efekty, ke kterým dochází při zakřiveném časoprostoru . Dráhy paprsku jsou upraveny s přihlédnutím k vysokým rychlostem a hmotnosti; dochází také ke změnám jasu a barev.

Oblasti použití

Počítačová grafika

Výpočty sledování paprsku jsou považovány za velmi časově náročné. Ray tracing se proto primárně používá při generování reprezentací, ve kterých je v popředí kvalita, nikoli čas výpočtu. Výpočet obrazu pomocí sledování paprsků může trvat libovolně dlouho - v praxi často několik hodin, v individuálních případech i několik dní - v závislosti na použité technologii, složitosti scény, použitém hardwaru a požadované kvalitě. V oblastech, jako je virtuální realita , ve kterých je třeba vypočítávat prostorové reprezentace v reálném čase , se proto sledování paprsků dosud nedokázalo prosadit. Filmy pro počítačové animace jsou převážně vyráběny systémem REYES , který se co nejvíce vyhýbá výpočtům sledování paprsků. Demo scéna občas používala sledování paprsku .

Ve srovnání s běžnými vykreslovači v reálném čase založenými na vyrovnávacích pamětech Z má ray tracing několik výhod: jednoduchá implementace se zvládnutelnou složitostí , vysoký stupeň flexibility na rozdíl od grafického kanálu a snazší zaměnitelnost shaderů, a tím i snadnější implementace. nových shaderů. Rychlost sledování paprsku musí tedy souviset s dosaženou kvalitou obrazu. Pro náročné požadavky na realistickou syntézu obrazu, zejména pro komplikované scény s jakýmkoli materiálem, neexistuje alternativa ke sledování paprsku.

Vyvíjí se úsilí o implementaci sledovačů paprsků v reálném čase pro složité scény, čehož již bylo za určitých podmínek dosaženo pomocí softwarových řešení optimalizovaných pro procesor a paměť . Implementace sledování paprsků optimalizovaná pro hardware ukazují, že budoucí široké využití sledování paprsků v oblasti v reálném čase je myslitelné. S těmito aplikacemi projekty, jako ty OpenRT - programování a různé implementace pro programovatelné GPU ( GPGPU ). Kromě toho byly vyvinuty speciální architektury pro hardwarově akcelerované sledování paprsků.

Další oblasti použití

Rayové sledování rádiových signálů zemskou atmosférou. Signály jsou vysílány ve dvou různých úhlech vlevo a dosahují přijímače vpravo.

Princip sledování paprsku lze rozšířit na jakékoli oblasti aplikace, ve kterých má být simulováno šíření vln ve scéně. Paprsky vždy představují normální vektorů do vlnoplochy . V auralizaci a vysokofrekvenční technologii se člověk snaží simulovat efekty scény na akustiku nebo na elektromagnetické pole . Cílem je vypočítat množství energie pro určité frekvence, které je přenášeno z vysílače do přijímače po různých možných cestách scénou.

V akustice je sledování paprsku jedním ze způsobů řešení tohoto problému kromě metody zdroje zrcadlového zvuku a výpočtu difuzního zvuku. Pro simulaci je třeba vzít v úvahu materiálové vlastnosti různých těles a útlum zvuku vzduchem.

Jedním ze způsobů, jak najít přenosové cesty, je vysílat paprsky ze zdroje izotropicky (ve všech směrech), případně je odrážet od objektů se ztrátou energie, a určit celkovou energii paprsků dopadajících na přijímač. Tato metoda se nazývá paprskové spouštění . Paprsky mohou mít také určitý „tvar“ - například trubku -, aby bylo možné simulovat bodové přijímače. Nevýhodou této metody je její pomalost, protože mnoho paprsků nikdy nedosáhne přijímače a pro přesnou statistiku je zapotřebí velké množství.
Další problém vyplývá ze skutečnosti, že vlnová délka často není zanedbatelná ve srovnání s rozměry těles ve scéně. Pokud není bráno v úvahu difrakce paprsků, mohou při simulaci tedy nastat znatelné chyby.

literatura

webové odkazy

Commons : Raytracing  - sbírka obrázků, videí a zvukových souborů

Poznámky

  1. Hans-Joachim Bungartz et al.: Introduction to Computer Graphics: Fundamentals, Geometric Modeling, Algorithms, p. 135. Vieweg, Braunschweig 2002, ISBN 3-528-16769-6
  2. ^ Beat Brüderlin, Andreas Meier: Počítačová grafika a geometrické modelování, s. 154. Teubner, Stuttgart 2001, ISBN 3-519-02948-0
  3. Terrence Masson: CG 101: A Computer Graphics Industry Reference. S. 267. Digital Fauxtography 2007, ISBN 0-9778710-0-2
  4. Arthur Appel: Některé techniky pro stínování strojních vykreslování těles. In Proceedings of the Spring Joint Computer Conference 1968. s. 37-45. AFIPS Press, Arlington
  5. ^ Mathematical Applications Group, Inc.: 3-D simulovaná grafika nabízená Service Bureau. Datamation 13, 1 ( February 1968): 69, ISSN  0011-6963
  6. ^ Robert Goldstein, Roger Nagel: 3-D vizuální simulace. Simulace 16, 1 (leden 1971): 25-31, ISSN  0037-5497
  7. Terrence Masson: CG 101: A Computer Graphics Industry Reference. In: Digital Fauxtography , 2007, ISBN 0-9778710-0-2 , s. 162.
  8. Oliver Abert a kol.: Přímé a rychlé paprskové sledování povrchů NURBS. In Proceedings of IEEE Symposium on Interactive Ray Tracing 2006. s. 161-168. IEEE, Salt Lake City 2006, ISBN 1-4244-0693-5 ( PDF, 700 kB ( Memento ze dne 2. prosince 2007 v internetovém archivu ))
  9. ^ Vlastimil Havran a kol.: Statistické srovnání schémat účinnosti paprskového fotografování. Technická zpráva TR-186-2-00-14, Institute of Computer Graphics and Algorithms, Vienna University of Technology 2000 ( ist.psu.edu )
  10. Ingo Wald, Vlastimil Havran: O stavbě rychlých kd stromů pro sledování paprsků a o tom v O (N log N). In Proceedings of IEEE Symposium on Interactive Ray Tracing 2006. s. 61-69. IEEE, Salt Lake City 2006, ISBN 1-4244-0693-5 ( PDF, 230 kB )
  11. Ingo Wald a kol.: Interaktivní vykreslování s koherentním sledováním paprsků. Computer Graphics Forum 20, 3 (září 2001), s. 153–164, ISSN  0167-7055 ( graphics.cs.uni-sb.de ( Memento od 5. června 2005 v internetovém archivu ))
  12. Alexander Reshetov a kol.: Víceúrovňový algoritmus sledování paprsků. Transakce ACM na grafice 24, 3 (červenec 2005): 1176–1185, ISSN  0730-0301 ( PDF; 400 kB )
  13. ^ Douglas Scott Kay: Transparentnost, lom světla a sledování paprsků pro počítačově syntetizované obrázky. Diplomová práce, Cornell University, Ithaca 1979
  14. ^ Turner Whitted: Vylepšený model osvětlení pro stínovaný displej. Komunikace ACM 23, 6 (červen 1980): 343-349, ISSN  0001-0782 ( PDF, 4,6 MB )
  15. ^ Robert Cook a kol.: Distribuované sledování paprsků. ACM SIGGRAPH Computer Graphics 18, 3 (červenec 1984), s. 137-145, ISSN  0097-8930
  16. Peter Shirley, Changyaw Wang, Kurt Zimmermann: Techniky Monte Carlo pro výpočty přímého osvětlení. ACM Transactions on Graphics 15, 1 (leden 1996), s. 1–36 ( PDF; 400 kB )
  17. James Kajiya: Vykreslovací rovnice. ACM SIGGRAPH Computer Graphics 20, 4 (srpen 1986), s. 143-150, ISSN  0097-8930
  18. Eric Veach, Leonidas J. Guibas: Optimální kombinace technik vzorkování pro vykreslování Monte Carla. Ve sborníku SIGGRAPH '95, s. 419-428. ACM, New York 1995, ISBN 0-89791-701-4 ( graphics.stanford.edu )
  19. R. Keith Morley et al.: Syntéza obrazu pomocí adjunktních fotonů. In Proceedings of Graphics Interface 2006, s. 179-186. Canadian Information Processing Society, Toronto 2006, ISBN 1-56881-308-2 ( PDF, 4,7 MB )
  20. Eric Lafortune, Yves Willems: obousměrné trasování cesty. In Proceedings of Compugraphics '93. Pp. 145-153. Alvor 1993 ( graphics.cornell.edu )
  21. Eric Veach, Leonidas Guibas: Obousměrné odhady lehké dopravy. In Eurographics Rendering Workshop 1994 Proceedings. Pp. 147-162. Darmstadt 1994 ( graphics.stanford.edu )
  22. ^ E. Veach, LJ Guibas: Metropolis Light Transport. Ve sborníku SIGGRAPH '97. Pp. 65-76. ACM Press, New York 1997, ISBN 0-89791-896-7 ( graphics.stanford.edu )
  23. ^ Henrik Wann Jensen a Niels Jørgen Christensen: Fotonové mapy v obousměrném sledování paprsků Monte Carlo komplexních objektů. Počítače a grafika 19, 2 (březen 1995): 215-224 , ISSN  0097-8493 ( graphics.stanford.edu )
  24. ^ Peter Atherton: Skrytý postup odstraňování skrytých povrchů pro konstruktivní pevnou geometrii. ACM SIGGRAPH Computer Graphics 17, 3 (červenec 1983), s. 73-82, ISSN  0097-8930
  25. Alexander Wilkie a kol.: Kombinované vykreslování polarizačních a fluorescenčních efektů. In Proceedings of the 12th Eurographics Workshop on Rendering Techniques . Springer, London 2001, ISBN 3-211-83709-4 , s. 197–204 ( PDF, 2,9 MB )
  26. ^ Daniel Weiskopf a kol.: Relativita v reálném světě: Speciální relativistická vizualizace založená na obraze. In IEEE Visualization: Proceedings of the Conference on Visualization 2000. s. 303-310. IEEE Computer Society Press, Salt Lake City 2000, ISBN 1-58113-309-X ( PDF, 640 kB ( Memento ze dne 13. června 2007 v internetovém archivu ))
  27. Jörg Schmittler a kol.: SaarCOR - hardwarová architektura pro sledování paprsků. In Proceedings of the SIGGRAPH / EUROGRAPHICS Conference On Graphics Hardware. 27-36. Eurographics, Aire-la-Ville 2002, ISBN 1-58113-580-7 ( PDF, 1,0 MB ( Memento ze dne 28. července 2007 v internetovém archivu ))