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.

metriku chyby, takže je nutné řešit závislosti, ale tato vlastnost by se dala změnit vhodnou<br />

metrikou. Pro zobrazování je použit stejný postup jako v (23), tedy vytvoření hamilt<strong>on</strong>ovské<br />

cesty v duálním grafu. Za nedostatek algoritmu by se dala považovat problematická<br />

implementace morfování. Autoři uvádí, že při odstraňování vrcholu je těžké zabránit popping<br />

efektu bez p<strong>on</strong>echání vrcholu v síti a vedení záznamu o vrcholech, které se mají v čase odstranit.<br />

Lépe než QuadTIN využívá vlastností TIN algoritmus popsaný v (38) a nazvaný BDAM. Používá<br />

opět BTT na reprezentaci dělení terénu, ale listy BTT představují obecné TIN, které jsou<br />

vytvořeny v intenzivní fázi předzpracování. Každý jeden velký blok zahrnuje až 8 192<br />

trojúhelníků, které byly vygenerovány nějakým pohledově nezávislým LOD algoritmem a které<br />

byly uloženy do jediné dvojice vertex a index bufferu optimalizované pro využití vertex cache na<br />

grafické kartě. Je to jeden z prvních algoritmů na zobrazování terénu, který intenzivně využívá<br />

výk<strong>on</strong>u <strong>GPU</strong>. Na rozdíl od jiných prací, (38) se také zabývá texturováním terénu za použití<br />

kvadrantového stromu a out-of-core systému na načítání. V (39) je algoritmus rozšířen o<br />

zpracování extrémně velkých dat, pro která není 32bitový IEEE formát čísla v plovoucí řádové<br />

čárce dostačující z hlediska přesnosti. Řešení je založeno na rozdělení terénu do obdélníkových<br />

oblastí a používání dvou souřadnic pro určení segmentu a offsetu.<br />

2.3.5 Statický a hybridní LOD<br />

Již v předchozích odstavcích jsme vzpomenuli některé algoritmy, které dynamicky řeší LOD pro<br />

terén s využitím předem generovaných bloků dat, například RUSTiC (33) či BDAM (38). Svou<br />

povahou by tedy bylo možné označit je za hybridní přístupy a zmínit je v tomto odstavci. Pro<br />

těsnou vázanost na jiné algoritmy jsme je však uvedli jinde. Přesto jsou v jednom ze základních<br />

principů podobné algoritmům uvedeným dále, totiž větším využitím <strong>GPU</strong> na základě méně<br />

intenzivního hledání optimálních aproximací. V tomto odstavci se pokusíme představit různé<br />

nápadité přístupy k řešení LODu pro terén, které zmíněný princip dále rozvíjejí. Jak jsme již<br />

zmínili dříve – čistě statický LOD není aplikovatelný na zobrazování terénu, a tyto hybridní<br />

metody využívají tedy statických dat v souznění s nějakým dynamickým řízením jejich napojení.<br />

Často vynikají snadnou implementací, ale zároveň si řešení některých jejich postranních<br />

problémů (například spojité napojování statických bloků) vynutí mnohé experimentování a<br />

ladění pro k<strong>on</strong>krétní aplikaci. Obsáhlé srovnání dvou hlavních zástupců čistě dynamického<br />

(ROAM) a statického (GeoMipMapping) přístupu najdeme v (40).<br />

Jeden z prvních algoritmů navržených pro intenzivnější využití <strong>GPU</strong> při zobrazování terénu<br />

navrhl de Boer jako paralelu k mipmapám používaným u textur (41). Ačkoli dnes se nám de<br />

Boerovo řešení jeví jako přirozené, v průběhu několika let po jeho publikaci bylo velice často<br />

používáno a vylepšováno. Algoritmus nazvaný GeoMipMapping je založen na reprezentaci terénu<br />

pomocí kvadrantového stromu, v němž listy představují čtvercové pravidelné mřížky o velikosti<br />

2 1. Tyto mřížky – bloky – jsou uloženy v různých úrovních detailu; každá nižší úroveň je<br />

tvořena implicitně stejnými daty, z nichž jsou vybrány jen liché vrcholy. Za běhu se vybírá<br />

patřičné dělení každého bloku pouze na základě horiz<strong>on</strong>tální vzdálenosti bloku od pozorovatele.<br />

Napojování sousedních bloků zobrazených v různém detailu je provedeno pouze volbou jiného<br />

index bufferu, který na okraji detailnějšího bloku vynechá vrcholy, jež nejsou součástí<br />

sousedního bloku (viz Obrázek 2.15). V práci není zmíněna žádná explicitní restrikce na sousední<br />

32

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

Saved successfully!

Ooh no, something went wrong!