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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

zvolen plášť koule. Vždy, když se pozorovatel dostane do prostoru vymezeného nějakou koulí,<br />

nahradí je asociovaná oblast přidána do seznamu pro rozdělení. Naopak, když pozorovatel kouli<br />

opustí, je oblast přidána do seznamu pro sloučení. Zbytek algoritmu probíhá stejně – hladový<br />

algoritmus za pomoci dvou fr<strong>on</strong>t vybírá oblasti pro sloučení a rozdělení a při přechodu na další<br />

snímek využívá struktury zhotovené v předchozím snímku. Pro urychlení testů se využívá<br />

m<strong>on</strong>otónnosti této metriky, a testují se tedy pouze aktivní obalové koule. Dalšího urychlení se<br />

dosahuje dočasnou agregací různých skupin koulí podle polohy pozorovatele a jejich vzájemných<br />

vzdáleností. Detailnější implementaci práce nezmiňuje, věnuje se spíše texturování terénních dat.<br />

Také nenabízí žádná číselná srovnání, pouze zmiňuje výrazně lepší výsledky než ROAM, zvláště<br />

při vyšších rychlostech pohybu a velikosti terénu.<br />

Princip algoritmu ROAM je využit také v (33), ve kterém jsou části BTT nahrazeny předem<br />

generovanými bloky terénu namísto jednotlivých trojúhelníků. Algoritmus nazvaný RUSTiC ve<br />

fázi předzpracování pro data terénu vytvoří trojúhelníkové bloky reprezentující možná<br />

zak<strong>on</strong>čení BTT. Každý takový blok je sestaven až z 16 trojúhelníků a je dělen určitým unikátním<br />

způsobem, aby se dal spojitě napojit na sousední bloky. ROAM algoritmus je použit na rychlé<br />

řešení oblastí, které je potřeba rozdělit či spojit a skupiny trojúhelníků jsou pak ve fázi<br />

zobrazování nahrazeny jedním blokem, jak ukazuje Obrázek 2.13.<br />

Obrázek 2.13: Napojení dvou sousedních bloků, které musí být stejně děleny na společné hraně.<br />

Efektivnější agregování trojúhelníků do větších celků, než jaké používá RUSTiC algoritmus,<br />

navrhuje Levenberg v (34). Zatímco RUSTiC využívá předzpracování terénu pro vygenerování<br />

použitých bloků, které vystupují jako jakési šabl<strong>on</strong>y, Levenberg navrhuje vytvářet tyto bloky až<br />

za běhu. Důležité je, že vygenerovaný blok se uchovává v paměti tak dlouho, dokud nemá dojít<br />

k jeho rozdělení či sloučení. Tento přístup má výrazně menší nároky na paměť – uchovávají se<br />

v každý čas jen aktuálně používané agregované trojúhelníky – a ne potřebuje fázi<br />

předzpracování. O velikostech agregovaných trojúhelníků se může rozhodnout kdykoli za běhu<br />

podle poměru výk<strong>on</strong>u CPU a <strong>GPU</strong> (větší agregované trojúhelníky znamenají více nadbytečné<br />

geometrie, ale menší dobu zpracování ROAM algoritmu).<br />

Zvláštní adaptace ROAM algoritmu byla navržena v (35). Autoři použili algoritmus při<br />

zobrazování modifikovatelného terénu. Využili přitom výhody BTT struktury, která je nezávislá<br />

na datech co do hodnoty i objemu (v případě větší komplexnosti dat se pouze přidají úrovně<br />

stromu). Navržený algoritmus pracující nad výškovou mapou dělí terén do buněk podle toho, jak<br />

je potřeba přidat detail, případně změnit data v určitých oblastech. Při potřebě zvýšení rozlišení<br />

30

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

Saved successfully!

Ooh no, something went wrong!