Urychlovací metody pro Ray-tracing

Podobné dokumenty
Datové struktury pro prostorové vyhledávání

Detekce kolizí v 3D Josef Pelikán KSVI MFF UK Praha

Rekurzivní sledování paprsku

Distribuované sledování paprsku

Výpočet průsečíků paprsku se scénou

Výpočet průsečíků paprsku se scénou

Výpočet vržených stínů

Přímé zobrazování objemových dat DVR

9 Prostorová grafika a modelování těles

Jana Dannhoferová Ústav informatiky, PEF MZLU

Photon-Mapping Josef Pelikán CGG MFF UK Praha.

Modely prostorových těles

Anti-aliasing a vzorkovací metody

Watkinsův algoritmus řádkového rozkladu

Zobrazování těles. problematika geometrického modelování. základní typy modelů. datové reprezentace modelů základní metody geometrického modelování

Zobrazování a osvětlování

Reprezentace 3D scény

Úvod Typy promítání Matematický popis promítání Implementace promítání Literatura. Promítání. Pavel Strachota. FJFI ČVUT v Praze

Gymnázium Jiřího Ortena, Kutná Hora. Průřezová témata Poznámky. Téma Školní výstupy Učivo (pojmy) volné rovnoběžné promítání průmětna

Voronoiův diagram. RNDr. Petra Surynková, Ph.D. Univerzita Karlova v Praze Matematicko-fyzikální fakulta

k-dimenzionálním prostoru. problém: Zkonstruovat strom, který rozděluje prostor polorovinami

Zobrazování barev Josef Pelikán CGG MFF UK Praha.

Visualizace objemových dat

Visualizace objemových dat

Text úlohy. Která barva nepatří do základních barev prostoru RGB? Vyberte jednu z nabízených možností: a. Černá b. Červená c. Modrá d.

Pracovní listy MONGEOVO PROMÍTÁNÍ

0 x 12. x 12. strana Mongeovo promítání - polohové úlohy.

Stromové struktury v relační databázi

Multimediální systémy. 11 3d grafika

REPREZENTACE 3D SCÉNY

Vzorce počítačové grafiky

8 Plochy - vytvoření, rozdělení, tečná rovina a normála. Šroubové plochy - přímkové, cyklické. Literatura:

Reprezentace 3D modelu

11 Vzdálenost podprostorů

Mgr. Ladislav Zemánek Maturitní okruhy Matematika Obor reálných čísel

Gymnázium Jiřího Ortena, Kutná Hora

1. Přímka a její části

MATEMATIKA Maturitní témata společná část MZ základní úroveň (vychází z Katalogu požadavků MŠMT)

Rekonstrukce izoploch

Katedra informatiky, Univerzita Palackého v Olomouci. 27. listopadu 2013

Úvod do mobilní robotiky AIL028

Elementární plochy-základní pojmy

Vyplňování souvislé oblasti

2. úkol MI-PAA. Jan Jůna (junajan)

Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

ŠVP Školní očekávané výstupy. - vytváří konkrétní soubory (peníze, milimetrový papír, apod.) s daným počtem prvků do 100

Několik úloh z geometrie jednoduchých těles

Algoritmy výpočetní geometrie

Základní pojmy: Objemy a povrchy těles Vzájemná poloha bodů, přímek a rovin Opakování: Obsahy a obvody rovinných útvarů

Datové struktury. Zuzana Majdišová

Datové struktury 2: Rozptylovací tabulky

Počítačová grafika RHINOCEROS

2. ANALYTICKÁ GEOMETRIE V PROSTORU Vektory Úlohy k samostatnému řešení... 21

Algoritmizace prostorových úloh

B) výchovné a vzdělávací strategie jsou totožné se strategiemi vyučovacího předmětu Matematika.

Geometrie. 1 Metrické vlastnosti. Odchylku boční hrany a podstavy. Odchylku boční stěny a podstavy

GIS Geografické informační systémy

Jana Dannhoferová Ústav informatiky, PEF MZLU

Další polohové úlohy

ÚLOHY S POLYGONEM. Polygon řetězec úseček, poslední bod je totožný s prvním. 6 bodů: X1, Y1 až X6,Y6 Y1=X6, Y1=Y6 STANOVENÍ PLOCHY JEDNOHO POLYGONU

A[a 1 ; a 2 ; a 3 ] souřadnice bodu A v kartézské soustavě souřadnic O xyz

Jasové transformace. Karel Horák. Rozvrh přednášky:

MONGEOVO PROMÍTÁNÍ - 2. část

Transformace obrazu Josef Pelikán KSVI MFF UK Praha

Maticová optika. Lenka Přibylová. 24. října 2010

Matematika II, úroveň A ukázkový test č. 1 (2017) 1. a) Napište postačující podmínku pro diferencovatelnost funkce n-proměnných v otevřené

Matematika II, úroveň A ukázkový test č. 1 (2016) 1. a) Napište postačující podmínku pro diferencovatelnost funkce n-proměnných v otevřené

Anti Aliasing. Ondřej Burkert. atrey.karlin.mff.cuni.cz/~ondra/ ~ondra/stranka

Matematika II, úroveň A ukázkový test č. 1 (2018) 1. a) Napište postačující podmínku pro diferencovatelnost funkce n-proměnných v otevřené

Pojmy: stěny, podstavy, vrcholy, podstavné hrany, boční hrany (celkem hran ),

9.1 Definice a rovnice kuželoseček

Gymnázium Jiřího Ortena, Kutná Hora. volné rovnoběžné promítání průmětna

Algoritmy pro shlukování prostorových dat

AXONOMETRIE - 2. část

INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA

Fotogrammetrie. zpracovala Petra Brůžková. Fakulta Architektury ČVUT v Praze 2012

Fotonové mapy. Leonid Buneev

Osvětlování a stínování

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Hierarchický model Josef Pelikán CGG MFF UK Praha. 1 / 16

Maturitní okruhy z matematiky - školní rok 2007/2008

Konstruktivní geometrie PODKLADY PRO PŘEDNÁŠKU

NPRG030 Programování I 3/2 Z --- NPRG031 Programování II --- 2/2 Z, Zk

Radiometrie, radiační metody

Spatial data structures

Rozpis výstupů zima 2008 Geometrie

Eukleidovský prostor a KSS Eukleidovský prostor je bodový prostor, ve kterém je definována vzdálenost dvou bodů (metrika)

Analytická geometrie (AG)

HVrchlík DVrchlík. Anuloid Hrana 3D síť

6.1 I.stupeň. Vzdělávací oblast: Matematika a její aplikace Vyučovací předmět: MATEMATIKA. Charakteristika vyučovacího předmětu 1.

GIS Geografické informační systémy

Požadavky na konkrétní dovednosti a znalosti z jednotlivých tematických celků

Diplomová práce Detekce kolizí vhodná pro pohybující se modely v oblasti VR

5) Průnik rotačních ploch. A) Osy totožné (a kolmé k půdorysně) Bod R průniku ploch. 1) Pomocná plocha κ

Počítačová geometrie. + algoritmy DG

Malířův algoritmus Josef Pelikán CGG MFF UK Praha. 1 / 15

Pokročilé metody fotorealistického zobrazování

Matematika 1 MA1. 1 Analytická geometrie v prostoru - základní pojmy. 4 Vzdálenosti. 12. přednáška ( ) Matematika 1 1 / 32

19 Eukleidovský bodový prostor

Fyzikálně založené modely osvětlení

Transkript:

Urychlovací metody pro Ray-tracing 1996-2016 Josef Pelikán CGG MFF UK Praha pepca@cgg.mff.cuni.cz http://cgg.mff.cuni.cz/~pepca/ Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 1 / 51

Průsečík paprsku s 3D scénou spotřebuje většinu strojového času (až 95% podle Whitteda, 1980) scéna je složena z elementárních těles koule, kvádr, válec, kužel, jehlan, polygon,.. elementární tělesa v CSG počet elementárních těles.. N klasický algoritmus testuje každý paprsek (do hloubky rekurze H) s každým element. tělesem O(N) testů pro jeden paprsek Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 2 / 51

Klasifikace urychlovacích metod urychlení výpočtu paprsek scéna urychlení testu paprsek těleso» obalová tělesa, efektivní algoritmy výpočtu průsečíků menší počet testů paprsek těleso» hierarchie obalových těles, dělení prostoru (prostorové adresáře), směrové techniky (+2D adresáře) menší počet testovaných paprsků» dynamické řízení rekurze, adaptivní vyhlazování zobecněné paprsky (dávající více informace)» polygonální svazek paprsků, kužel,.. Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 3 / 51

Obalové těleso P 0 P 1 neúsporné případy P 0 P 1 P 0 P 1 úsporný případ Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 4 / 51

Obalové těleso výpočet průsečíku je jednodušší než u původního tělesa koule, kvádr v obecné nebo osově rovnoběžné poloze, průnik pásů,.. obal by měl co nejtěsněji obklopovat původní těleso (pro maximální urychlení) efektivita obalového tělesa záleží na vhodném kompromisu mezi a celková asymptotická složitost zůstává O(N) Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 5 / 51

Efektivita obalového tělesa Očekávaný průměrný čas výpočtu průsečíku paprsku s tělesem: B + p I < I I.. čas výpočtu průsečíku s původním tělesem B.. čas výpočtu průsečíku s obalovým tělesem p.. pravděpodobnost zásahu obalového tělesa paprskem (kolik % paprsků protne obalové těleso) Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 6 / 51

Různě efektivní obaly A B pa/pb = 0.20 pa/pb = 0.23 pa/pb = 0.50 Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 7 / 51

Kombinovaná obalová tělesa lepší aproximace tvaru původního tělesa sjednocení a průniky jednodušších obalových těles: Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 8 / 51

Aproximace konvexního obalu výhodné obalové těleso pro konvexní objekty průnik několika pásů ( k-dops ) pás je omezen dvěma rovnoběžnými rovinami nutnost efektivního výpočtu konstant d a D: d min ax by cz, D max ax by cz x, y, z T x, y, z T T T T Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 9 / 51

Efektivní implementace výpočítám průsečíky paprsku se všemi obalovými tělesy protnutá obalová tělesa seřadím podle vzdálenosti od počátku paprsku objekty testuji v tomto pořadí (od nejbližších ke vzdálenějším) skončím, jestliže jsem našel průsečík a otestoval všechny objekty sahající před něj Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 10 / 51

Efektivní implementace 1 2 2 1 3 Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 11 / 51

Hierarchie obalových těles (BVH) III I II Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 12 / 51

Hierarchie obalových těles v ideálním případě snižuje asymptotickou složitost na O(log N) vyplatí se zejména u dobře strukturovaných scén množství dobře oddělených malých objektů přirozená implementace v CSG reprezentaci (prořezávání CSG stromu) možnost automatické konstrukce hierarchie inkrementální algoritmus v orientaci AABB je to přesně R-tree (Guttman) viz databázové vyhledávací datové struktury Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 13 / 51

Efektivita hierarchie K? K K B p I I i i i1 i1 i p i.. pravděpodobnost zásahu i-tého obalového tělesa I i.. čas výpočtu pro objekty uzavřené v i-tém obalovém tělese B.. čas výpočtu průsečíku s obalovým tělesem p 1 I 3 I 1 I 2 p 2 p 3 Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 14 / 51

Efektivita hierarchie plocha P i C i C P(d), P i (d).. plocha průmětu tělesa ze směru d S, S i.. povrch tělesa plocha P Pro všechny směry a konvexní tělesa: Pro jeden směr pohledu d: p Pr C C i zá sah i zá sah p i P d dd i P d dd Si S P d i P d Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 15 / 51

Inkrementální konstrukce vytvořím prázdnou hierarchii (kořen stromu) vezmu nový objekt a přidám ho do kořene opravím obalové těleso kořene vyberu nejvýhodnější možnost (v rámci obal.t.): objekt bude samostatný (bez vlastního obalu) objekt bude mít sám nové obalové podtěleso objekt přidám do existujícího obalového podtělesa záleží na pořadí přidávání objektů! setřídění podle 3D polohy a náhodné zamíchání Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 16 / 51

Hierarchické obalové systémy Sphere tree (Palmer, Grimsdale, 1995) jednoduchý test i transformace, horší aproximace AABB tree, R-tree (Held, Klosowski, Mitchell, '95) jednoduchý test, složitější transformace OBB tree (Gottschalk, Lin, Manocha, 1996) jednoduchá transformace, složitější test, slušná aproximace K-dop tree (Klosowski, Held, Mitchell, 1998) složitější transformace a test, výborná aproximace Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 17 / 51

Prořezávání CSG stromu efektivní především pro subtraktivní množinové operace (průnik, rozdíl) primární obalová tělesa jsou přiřazena (omezeným) elementárním tělesům velikost se většinou určuje analyticky obalová tělesa se pomocí množinových operací propagují směrem ke kořeni u argumentů subtraktivních operací se mohou obalová tělesa zmenšovat Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 18 / 51

Prořezávání CSG stromu A A B 1 B 1 B 2 B(A-B) B(B 2 ) = 0 B(A) A B 1 B 2 A-B B(A-B) B(B) B B(B) Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 19 / 51

Dělení prostoru (prostorové adresáře) uniformní dělení (stejně velké buňky) + jednoduchý průchod mnoho kroků výpočtu velký objem dat neuniformní dělení (většinou adaptivní) + méně kroků výpočtu + menší objem dat složitější implementace datové struktury i algoritmu procházení Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 20 / 51

Uniformní dělení prostoru Buňka obsahuje seznam objektů, které do ní zasahují Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 21 / 51

Průchod sítí buněk (3D DDA) y Lx Ly Dy Dx x Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 22 / 51

Průchod sítí buněk (3D DDA) paprsek: P 0 + t P 1 pro t > 0 pro daný směr P 1 se předem spočítají konstanty Dx, Dy, Dz: vzdálenost mezi sousedními průsečíky paprsku se sítí rovnoběžných rovin (kolmých na osy x, y, z) pro bod P 0 se určí počáteční buňka [ i, j, k ] a hodnoty proměnných t, Lx, Ly, Lz: parametr polopřímky t, vzdálenosti k nejbližším průsečíkům paprsku se stěnami Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 23 / 51

Průchod sítí buněk (3D DDA) zpracování buňky [ i, j, k ] (výpočet průsečíků) postup do sousední buňky: D = min {Lx,Ly,Lz}; /* předpoklad: D = Lx */ Lx = Dx; Ly = Ly - D; Lz = Lz - D; i = i ± 1; /* podle znaménka P 1x */ koncové podmínky: našel jsem nejbližší průsečík paprsku se scénou, a ten leží v aktuální buňce nová buňka leží mimo oblast scény Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 24 / 51

Separace dat podle dimenzí redukce velkých paměťových nároků O(K 3 ) kompromis mezi efektivitou a úsporou paměti počet testovaných těles se může mírně zvětšit některá tělesa se mohou testovat zbytečně, ale žádné důležité těleso nemůže být vynecháno velká protáhlá tělesa nejsou výhodná seznam relevantních těles se spočítá jako průnik příslušných řádkových a sloupcových seznamů efektivní implementace: bitové vektory, uspoř. seznamy Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 25 / 51

Separace dat podle dimenzí C E sloupec: [ B, D, E, F ] B D řádek: [ A, B, D, F ] A F průnik: [ B, D, F ] Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 26 / 51

Neuniformní dělení prostoru Oktantový strom: průchod 13 buňkami (uniformní pole: 17) Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 27 / 51

Geometrie adaptivního dělení oktantový strom s půlením stran reprezentace pomocí ukazatelů, implicitní reprezentace nebo hašovací tabulkou (Glassner) KD-strom (Bentley) [dříve osově orientovaný BSP ] buňky se dělí v polovině, cyklicky se střídají směry dělení buňky se dělí adaptivně, i směry dělení jsou adaptivní [obecný BSP strom] dělicí roviny mají libovolnou orientaci Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 28 / 51

Oktantový strom podle Glassnera 1 11 12 13 14 15 16 17 18...... 111 112 161 1621 162 168... 1622 Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 29 / 51

Oktantový strom podle Glassnera jednotlivé buňky jsou hierarchicky očíslovány kořen.. 1 jeho potomci.. 11 až 18,.. atd. každý voxel má přiřazen kód bez ohledu na to, zda je listem aktuálního oktantového stromu nebo ne skutečné listy stromu se ukládají do řídké hašovací tabulky příklad hašovací fce: Kód mod VelikostTabulky Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 30 / 51

Průchod stromem (Glassner) bod ležící na paprsku.. [ x, y, z ] umím pro něj najít kód voxelu.. [ 1 8 ] k při konstrukci kódu hledám v hašovací tabulce všechny prefixy nalezený prefix je listem obsahujícím bod [ x, y, z ] po zpracování buňky stromu pokračuji posunutím bodu [ x, y, z ] ve směru paprsku (P 1 ) pokračuji opět lokalizací nového bodu,... Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 31 / 51

KD-strom IV III V III VI V III VI V I II II III KD-strom: průchod 7 buňkami (test 5 objektů) Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 32 / 51

Kritéria adaptivního dělení omezení počtu těles i hloubky dělení rozděl buňku, zasahuje-li do ní více než M těles (např. M = 1.. 5 ) maximální úroveň dělení je K (např. K = 3.. 5) omezení počtu těles a spotřeby paměti místo omezení úrovně dělení: dělení se ukončí při zaplnění vyhrazeného úseku paměti při dělení je nutné postupovat do šířky (fronta kandidátů na dělení) Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 33 / 51

Průchod adaptivními strukturami posunuji se po paprsku a hledám sousední buňku vždy až od kořene (viz Glassnerova metoda) přípravná fáze: průchod stromem a rozdělení paprsku na intervaly intervaly parametru t přiřazené jednotlivým buňkám, kterými budu procházet pomocné údaje v dat. strukturách (à la finger tree ) ukazatele na sousední buňky (na stejné úrovni ve stromu) rekurzivní průchod do hloubky s haldou seznam nejnadějnějších sektorů v haldě Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 34 / 51

Schránka ( mailbox ) A 1: nic 1 2 3 C 5: průsečík 4 5 B 4: průsečík Průsečík musí ležet v aktuální buňce (jinak ho odložím) Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 35 / 51

Abstraktní dělení prostoru není třeba testovat (ani procházet!) seznamy, které jsem již testoval seznam musím procházet až v takové buňce, do které zasahuje jiná (větší) množina těles buňky mohou sdílet shodné seznamy těles otestované seznamy označuji zvláštním příznakem procházím pouze neoznačené seznamy na úrovni těles používám techniku schránek Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 36 / 51

Abstraktní dělení prostoru 1 A C [ A ] [ A,C ] [ B,C ] 2 3 [ ] B [ B ] Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 37 / 51

Makrobuňky (M. Šrámek) Buňka obsahuje tzv. bezpečnou vzdálenost (bez dalších těles) Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 38 / 51

Směrové urychlovací techniky metody využívající směrové krychle: světelný buffer urychluje stínovací paprsky k bodovým zdrojům koherence paprsků urychluje všechny sekundární paprsky 5D klasifikace paprsků adresář v průmětně (předvýpočet viditelnosti) urychluje pouze primární paprsky Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 39 / 51

Směrová krychle (adaptivní síť) z P 1 P 0 x y Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 40 / 51

Směrová krychle orientována rovnoběžně s osami x, y, z jednotlivé stěny jsou rozděleny na buňky uniformní nebo adaptivní dělení každá buňka obsahuje seznam relevantních objektů (mohou být navíc setříděny vzestupně podle vzdálenosti od středu krychle) při uniformním dělení lze pro urychlení využít HW výpočtu viditelnosti (z-buffer) Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 41 / 51

Světelný buffer urychluje stínovací paprsky k bodovým světelným zdrojům do každého zdroje umístím směrovou krychli spočítám potenciální viditelnost jednotlivých těles z místa světelného zdroje některé buňky mohou být zcela zakryty 1 tělesem při výpočtu stínovacího paprsku beru v úvahu jen tělesa zaznamenaná v buňce směrové krychle pro příslušný směr Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 42 / 51

Koherence paprsků R 1 R 2 S 1 S 2 cos R1 R2 1 S S 1 2 Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 43 / 51

Urychlovací algoritmus urychluje všechny sekundární paprsky odražené, zalomené, stínovací předpokládám obalová tělesa tvaru koule směrové krychle umístím do středu každého obalového tělesa v každé buňce krychle spočítám seznam zasahujících objektů a světelných zdrojů (s využitím koherenční nerovnosti) seznamy mohou být setříděné podle vzdálenosti Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 44 / 51

5D klasifikace paprsků paprsky ve scéně mají 5 stupňů volnosti: počátek P 0 - [x, y, z] směr [, ] 5D hyperkrychle se rozdělí na buňky každá buňka obsahuje seznam objektů, které mohou být paprskem z daného svazku ( beam ) zasaženy adaptivní dělení (slučování sousedních buněk se stejnými nebo podobnými seznamy) 6D varianta: urychlení výpočtu animační sekvence Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 45 / 51

Klasifikace paprsků počátek (2-3D) + směr (1D, 2D) = svazek Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 46 / 51

Adresář v průmětně urychluje primární paprsky průmětna se (adaptivně) rozdělí na buňky v každé buňce zjistím potenciální viditelnost jednotlivých těles scény (spolu s pořadím) některé buňky mohou být zcela zakryty jedním tělesem (obtížně se testuje vepsaná tělesa ) robustní varianta algoritmu viditelnosti může pro většinu pixelů bezpečně určit zasažené těleso Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 47 / 51

Zobecněné paprsky spočítám najednou více informace než f(x,y) pro vyhlazování (odhad integrální střední hodnoty) nebo měkké stíny (podíl zastínění) vždy musím obětovat obecnost scény různé tvary zobecněných paprsků rotační nebo eliptický kužel, pravidelný jehlan jehlan s polygonálním průřezem (scéna složená pouze z polygonů) Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 48 / 51

Polygonální scéna P 0 Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 49 / 51

Literatura A. Glassner: An Introduction to Ray Tracing, Academic Press, London 1989, 201-262 A. Watt, M. Watt: Advanced Animation and Rendering Techniques, Addison-Wesley, Wokingham 1992, 233-248 V. Havran: Heuristic Ray Shooting Algorithms, PhD práce, FEL ČVUT Praha, 2001 P. Konečný: Obalová tělesa v počítačové grafice, diplomová práce, Masarykova univerzita, Brno 1998 Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 50 / 51

Literatura II J. Klosowski, M. Held, J. Mitchell, H. Sowizral, K. Zikan: Efficient collision detection using bounding volume hierarchies of k-dops, IEEE Transactions on VaCG, 21 36, January-March 1998 H. Samet: Foundations of Multidimensional and Metric Data Structures, Morgan Kaufmann, 2006 H. Samet: The Design and Analysis of Spatial Data Structures, Addison-Wesley, 1990 Speedup 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 51 / 51