26
1 Fast kd-tree Construction with an Adaptive Error- Bounded Heuristic Warren Hunt, William R. Mark, Gordon Stoll prezentace : Radek Richtr

Fast kd-tree Construction with an Adaptive Error-Bounded Heuristic

Embed Size (px)

DESCRIPTION

Fast kd-tree Construction with an Adaptive Error-Bounded Heuristic. Warren Hunt, William R. Mark, Gordon Stoll. prezentace : Radek Richtr. Obsah prezentace. 1) kd-tree – krátké zopakování 2)konstrukce datové struktury kd-tree 3) kritérium výběru místa dělení - SAH - PowerPoint PPT Presentation

Citation preview

Page 1: Fast kd-tree Construction with an Adaptive Error-Bounded Heuristic

1

Fast kd-tree Construction with an Adaptive Error-Bounded Heuristic

Warren Hunt, William R. Mark, Gordon Stoll

prezentace : Radek Richtr

Page 2: Fast kd-tree Construction with an Adaptive Error-Bounded Heuristic

2

Obsah prezentace

1) kd-tree – krátké zopakování

2) konstrukce datové struktury kd-tree

3) kritérium výběru místa dělení - SAH

4) aproximace cenové funkce

5) adaptivní výběr vzorků

6) snížení chyby

7) zhodnocení

Page 3: Fast kd-tree Construction with an Adaptive Error-Bounded Heuristic

3

Kd - tree (krátce)

- Speciální případ BSB - tree

- Datová struktura založená na dělení prostoru

- Reprezentace binárním stromem

- Užitečné pro mnoho různých aplikací

- Mnoho různých variant a optimizací

wikipedia.org

Page 4: Fast kd-tree Construction with an Adaptive Error-Bounded Heuristic

4

Konstrukce d.s. kd-treeKd-tree i jeho konstrukce má mnoho variant- dle místa dělení (body, hrany, prostor…)- kritérium výběru místa dělení (polovina, medián, SAH…)- dle os podle kterých dělíme (RR, jedna osa, hybridní…)- adaptivní a neadaptivní, top-down…

Klasická konstrukce kd-tree je pomalá pro raytracing v reálném čase- Použít jinou datovu strukturu (hybridní, mřížky…)- Urychlit raytracing- Urychlit stavbu datové struktury kd tree

- Stavba méně přesné struktury (lazy building)- Urychlit výpočet kritéria při dělení

Page 5: Fast kd-tree Construction with an Adaptive Error-Bounded Heuristic

5

Surface area heuristic (SAH)Jedna z metod nacházení dělících hran

snaha o minimalizaci kritéria :

)(

),()(

)(

),()(cost(x)

vSA

xvSAxC

vSA

xvSAxCC R

RL

LI

CI cena(náročnost) traverzování uzlu (konstanta)CL(P) cena traverzace levého(p.) uzlu, který vznikne dělením v místě xSAL(P) velikost(plocha / objem) vzniklé oblasti (l. a p. potomka)SA velikost(plocha / objem kořene

Jde tedy o součet ceny traverzace s pravděpodobností průniku uzlu.Kritérium je porovnáno s cenou případu, kdy uzel nedělíme. Pokud je cena rozdělení uzlu nižší, je uzel rozdělen v místě x na dva potomky.

toto je jedna z podob kritéria, zde upravená pro rychlý výpočet

Page 6: Fast kd-tree Construction with an Adaptive Error-Bounded Heuristic

6

• velmi dobré kritérium

• velmi pomalé

• je třeba výpočet urychlit ‚Nalezneme úzké hrdlo‘

• Výpočet hodnot CL a CR (zde je představují počty objektů v potenciálních potomcích) je náročný

SAH

Page 7: Fast kd-tree Construction with an Adaptive Error-Bounded Heuristic

7

Výpočet SAH

- sorting (předřazení objektů + test)O(n log2(n)), lze snížit na O(n log(n))

- scaning (testování v bodech)O(qn) => q-konstanta => O(n)

• Místo výpočtu ceny ve všech bodech (obvykle pomocí předřazení objektů dle os) vybereme vzorky v dostatečném počtu bodů.

• Dělicí hranu je možné buď umístit do zkoumaných bodů, nebo je možné celkovou funkci aproximovat

SAH

Page 8: Fast kd-tree Construction with an Adaptive Error-Bounded Heuristic

8

SAH, příkladdélka : 10

výška 0.1

SA(v) = 1

10 částí - SA(v,x) = 0.1, 0.2 .. 0.9

CL a CR – počty AABB obálek

Celkem 12 AABB obálek

)(

),()(

)(

),()(cost(x)

vSA

xvSAxC

vSA

xvSAxCC R

RL

LI

Page 9: Fast kd-tree Construction with an Adaptive Error-Bounded Heuristic

9

SAH, příklad

1 · 0.1 + 11 · 0.9 = 10

Page 10: Fast kd-tree Construction with an Adaptive Error-Bounded Heuristic

10

SAH, příklad

1 · 0.1 + 11 · 0.9 = 10

2 · 0.2 + 10 · 0.8 = 8.4

Page 11: Fast kd-tree Construction with an Adaptive Error-Bounded Heuristic

11

SAH, příklad

1 · 0.1 + 11 · 0.9 = 10

2 · 0.2 + 10 · 0.8 = 8.4

3 · 0.3 + 9 · 0.7 = 7.2

Page 12: Fast kd-tree Construction with an Adaptive Error-Bounded Heuristic

12

SAH, příklad

1 · 0.1 + 11 · 0.9 = 10

2 · 0.2 + 10 · 0.8 = 8.4

3 · 0.3 + 9 · 0.7 = 7.2

3 · 0.4 + 9 · 0.6 = 6.6

Page 13: Fast kd-tree Construction with an Adaptive Error-Bounded Heuristic

13

SAH, příklad

1 · 0.1 + 11 · 0.9 = 10

2 · 0.2 + 10 · 0.8 = 8.4

3 · 0.3 + 9 · 0.7 = 7.2

3 · 0.4 + 9 · 0.6 = 6.6

7 · 0.5 + 6 · 0.5 = 6.5

Page 14: Fast kd-tree Construction with an Adaptive Error-Bounded Heuristic

14

SAH, příklad

10 8.4 7.2 6.6 6.5 6.6 8.9 9.6 10

min

Page 15: Fast kd-tree Construction with an Adaptive Error-Bounded Heuristic

15

Aproximace cenové funkce

- Lze dělit buď ve zkoumaných bodech, nebo funkci aproximovat

- Pro postavení odpovídající cenové funkce obvykle postačuje poměrně malý počet

vzorků (max.32)

- Je třeba aby samotná aproximace nebyla náročnější, než vypočítání celé funkce

- Aproximace (v zásadě nepřesná) nesmí snížit kvalitu nalezeného minima

Page 16: Fast kd-tree Construction with an Adaptive Error-Bounded Heuristic

16

Adaptivní výběr vzorků

- Hledaná cenová funkce nemusí být jednoduchá.

- Pevně daný počet (q) dělení nemusí postihnout její reálný tvar

- Nalezneme q/2 vzorků a následně, dle jejich hodnot umístíme dalších q/2 vzorků pro

přesnější aproximaci funkce

- Je třeba zvolit vhodné kritérium dle kterého hledat vzorky

Page 17: Fast kd-tree Construction with an Adaptive Error-Bounded Heuristic

17

SAH, adaptivní vzorky

Page 18: Fast kd-tree Construction with an Adaptive Error-Bounded Heuristic

18

SAH, adaptivní vzorky

10 8.4 7.2 6.6 6.5 6.6 8.9 9.6 10

Page 19: Fast kd-tree Construction with an Adaptive Error-Bounded Heuristic

19

SAH, adaptivní vzorky

10 8.4 7.2 6.6 6.5 6.6 8.9 9.6 10

Page 20: Fast kd-tree Construction with an Adaptive Error-Bounded Heuristic

20

SAH, adaptivní vzorky

10 8.4 7.2 6.6 6.5 6.6 8.9 9.6 10

6.2

Page 21: Fast kd-tree Construction with an Adaptive Error-Bounded Heuristic

21

SAH, CL-CR

-12

12

0

Page 22: Fast kd-tree Construction with an Adaptive Error-Bounded Heuristic

22

Omezení chyby ap.

• Při interpolaci funkce je obecně problém, pokud je skutečná cenová funkce složitá (prudké změny), případně nespojitá

• Toto bývá problém i při jiných způsobech stavby

• K lokalizaci těchto nespojitostí pomáhá adaptivní výběr vzorků

Page 23: Fast kd-tree Construction with an Adaptive Error-Bounded Heuristic

23

Omezení chyby ap.

Aby byly vlivy těchto nespojitostí co nejmenší, vybírá algoritmus dělící blízko ‚nespojitosti(místo prudké změny funkce)‘ – tím je již po několika krocích ‚nespojitost‘ uzavřena v jediném uzlu. Navíc čím je ‚skok‘ větší, tím dříve je ‚nespojitost‘ uzavřena dříve (a tedy i v menší buňce)

7

6

8

9

Page 24: Fast kd-tree Construction with an Adaptive Error-Bounded Heuristic

24

Zopakování

• Klasická stavba kd-stromu je příliš pomalá• Jednou z možností urychlení je zrychlit

(zjednodušit) výpočet kritéria kde rozdělit uzel• Místo seřazení uzlů testujeme ‚obsah‘ uzlu v

několika bodech (testujeme top-down)• Body určíme napevno a v místech kde je změna

funkce největší dodáme další• Skutečnou cenovou funkci poté aproximujeme• Nespojitosti a nepřesnosti izolujeme do vlastních

uzlů

Page 25: Fast kd-tree Construction with an Adaptive Error-Bounded Heuristic

25

Literatura

W. Hunt, G. Stoll and W. Mark. Fast kd-tree construstion with an adaptive error-bounded heuristic

S. Popov, J. Gunter, H. Seidel, P. Slusallek. Experiances with Construction of SAH KD-Trees

V. Havran, X36DPG slidy

Page 26: Fast kd-tree Construction with an Adaptive Error-Bounded Heuristic

26

SAH, CL

10 8.4 7.2 6.6 6.5 6.6 8.9 9.6 10

0

12

6