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.

získávaných přes silně limitovaný datový kanál. Návrh implementace je možné nalézt v (19),<br />

ačkoli zdrojový kód není dostupný, neboť se stal součástí rozšíření Direct3D.<br />

2.3.3 Kvadrantový strom<br />

Kvadrantový či jiný strom se zpravidla používá pro hierarchické rozdělení zobrazované scény, ve<br />

které potřebujeme často eliminovat velké množství objektů, jež prostorově splňují nějakou<br />

podmínku (například nejsou vidět). Je přirozené využít již existující struktury a aplikovat ji<br />

v modifikované podobě i na terén, zvláště pokud je reprezentovaný výškovou mapou – přirozeně<br />

pravidelnou strukturou. Vznikla proto celá řada algoritmů pro zobrazování terénu, které v nějaké<br />

podobě využívají kvadrantový strom (ale také například binární strom, jak si ukážeme v odstavci<br />

2.3.4).<br />

Povaha kvadrantového stromu jej předurčuje k horším výsledkům, než jakých jsme schopni<br />

dosáhnout méně svázanými strukturami, jako je například progressive mesh, u kterého se při<br />

zjednodušování bere v úvahu celý objekt. Pravidelné struktury se však snáze implementují a<br />

výrazně lépe se v nich přistupuje ke k<strong>on</strong>krétním datům. Generování stromu je velice snadné –<br />

dělíme plochu terénu rekurzivně na čtyři stejné části tak dlouho, dokud nesplňuje zpracovávaná<br />

oblast podmínku danou zvolenou metrikou. Příklad dělení takovým stromem ukazuje Obrázek<br />

2.7.<br />

Obrázek 2.7: Obecný kvadrantový strom (vlevo) a omezený kvadrantový strom vytvořený nad<br />

stejnými daty (vpravo)<br />

Pro kvadrantový strom je zásadní především způsob triangulace výsledného útvaru. Algoritmem<br />

pro dělení totiž získáme pouze informace o tom, jak věrně je třeba kterou část terénu<br />

reprezentovat. Zde se otevírá obecný problémem s napojováním různých částí modelu, které byly<br />

triangulovány s jiným nastavením. Je to ideální příležitost pro vznik prasklin a T-spojů, kterým se<br />

chceme vyhnout. Jednou možností je tzv. omezený kvadrantový strom (restricted quadtree), což je<br />

varianta klasického kvadrantového stromu vázaná podmínkou na dělení jednotlivých částí. Tato<br />

podmínka stanovuje maximální rozdíl v úrovních dělení dvou sousedních oblastí na 1. Tedy<br />

jestliže jednu oblast rekurzivně rozdělíme třikrát, žádného jejího souseda nesmíme rozdělit více<br />

než 4x nebo méně než 2x (viz Obrázek 2.7).<br />

I pro omezený kvadrantový strom je nutné řešit triangulaci oblasti s ohledem na okolní oblasti,<br />

avšak situace je daleko snazší. Rozdělíme čtverec pomocí diag<strong>on</strong>ál na čtyři pravoúhlé<br />

24

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

Saved successfully!

Ooh no, something went wrong!