10.08.2013 Views

Terrain Processing on Modern GPU - Computer Graphics Group ...

Terrain Processing on Modern GPU - Computer Graphics Group ...

Terrain Processing on Modern GPU - Computer Graphics Group ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

prováděny při předání vrcholu grafické kartě, nebo přepočtem celého jednoho bloku v cyklu na<br />

CPU. Wagner dok<strong>on</strong>ce uvádí srovnání, ze kterého je patrné, že morfování prováděné na grafické<br />

kartě je téměř „zdarma“ (méně než 1 % výk<strong>on</strong>u), zatímco prováděné na CPU sníží výk<strong>on</strong> systému<br />

až na polovinu. Další optimalizací, kterou v (45) najdeme, je užití PVS algoritmu (potentially<br />

visible sets). PVS představuje úplný graf, ve kterém jednotlivé vrcholy zastupují vybrané oblasti<br />

terénu. V náročné fázi předzpracování se provede test vzájemné viditelnosti každého páru<br />

oblastí a uchová se jednobitová informace o tom, zda je z jedné oblasti do druhé vidět. Během<br />

zobrazování se pak zbytečně nevykreslují ty oblasti, které nejsou vidět z oblasti, v níž se zrovna<br />

nachází pozorovatel. PVS můžeme přirozeně použít téměř v každém řešení zobrazování terénu,<br />

přesto je (45) jedna z mála prací, kde je věnována pozornost ořezávání zakrytých částí scény.<br />

Inovativní řešení napojování sousedních oblastí navrhuje (47). Poměrně nový algoritmus dělí<br />

čtvercový terén pomocí kvadrantového stromu na různě velké oblasti, které jsou mezi sebou<br />

vždy spojitě napojeny. Toho je docíleno použitou metrikou, která zohledňuje délku hrany oblasti<br />

a její projekce. Dva sousední bloky vždy sdílí hranu, nebo část hrany a tato je tedy dělena stejně<br />

pro oba bloky. Samotné napojování pak probíhá uvnitř oblastí, ne mezi oblastmi, takže není třeba<br />

zavádět restrikce a mít znalosti o okolí. Každá oblast se nak<strong>on</strong>ec rozdělí do 4 trojúhelníkových<br />

sektorů, kterou mohou být obecně různé úrovně detailu, a tyto se spojí pomocí předem<br />

vygenerovaných přechodových pásků.<br />

V řadě dalších prací najdeme opakování již popsaných postupů, jejich různé permutace, adaptace<br />

na k<strong>on</strong>krétní podmínky či drobná vylepšení v tom či <strong>on</strong>om směru. (48) například provádí<br />

progresivní aktualizaci dat geometrie na grafické kartě – detailnější modely jsou tvořeny méně<br />

detailními (ty už jsou zpravidla v paměti grafické karty) společně s nově přidanými daty. V (49)<br />

pro změnu najdeme stručný popis stránkovacího mechanismu pro trojúrovňovou vyrovnávací<br />

paměť. V práci bohužel není uveden žádný komentář k vysvětlení velmi špatných výsledků pro<br />

větší vstupní data; domníváme se, že to bylo způsobeno neideálním využitím paměti grafické<br />

karty. Využití Shader Modelu 3.0 najdeme v (50), kde jsou data geometrie oddělena od topologie<br />

pomocí výškové mapy uložené v textuře. Pro všechny bloky jedné úrovně se tedy používá jediná<br />

topologie a geometrická data jsou načítána ve vertex shaderu z textury.<br />

2.3.6 Clipmap<br />

Již před 10 lety byla navržena zvláštní struktura pro mapování souvislé textury na rozlehlé<br />

terény (51) a později byla dopodrobna rozebrána (52). Struktura nazvaná clipmap byla použita<br />

do systému pro zobrazování potenciálně nek<strong>on</strong>ečného terénu bez omezení dohledové<br />

vzdálenosti. Její základní myšlenka se opírá o vlastnosti mipmap – textura je uložena v různých<br />

rozlišeních a při vzorkování se vždy využije ta úroveň detailu, která přísluší aktuálnímu<br />

gradientu texturové souřadnice na obrazovce. Na větší trojrozměrné objekty tak může být<br />

v různých místech použito několik úrovní. Terén představuje extrémně velký objekt, který je<br />

třeba v různých jeho částech zobrazit s různou přesností, a tato se může lišit i o několik řádů.<br />

Mipmapa je hierarchie, v níž každá úroveň reprezentuje tatáž data v jiném rozlišení.<br />

My si však povšimneme, že při zobrazování není třeba mít pro každou úroveň k dispozici všechna<br />

data. Z každé úrovně je vidět maximálně to, co se vejde na obrazovku. Velikost jednotlivých<br />

úrovní tedy můžeme limitovat nějakou k<strong>on</strong>stantou (podle požadavku kvality), tu označíme jako<br />

35

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!