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.

Druhým zajímavým schématem je hexag<strong>on</strong>ální schéma, ale najdeme jej také pod názvem<br />

h<strong>on</strong>eycomb (včelí plástev). Bylo navrženo Dynem, Levinem a Liu (první dva se podíleli na<br />

butterfly schématu) jako nestaci<strong>on</strong>ární dělení. Podobně jako předchozí uvedené je tvořeno<br />

dvěma kroky. První krok umístí do každého šestiúhelníka 6 nových vrcholů, které vytvoří nový<br />

poloviční šestiúhelník a 6 čtyřúhelníků na hranicích. V druhém kroku se sloučí sousední<br />

čtyřúhelníky dvou různých původních stěn tím, že se odebere jejich společná hrana. Tímto<br />

sloučením vznikne nový šestiúhelník. Popsaný postup názorně ukazuje Obrázek 3.7.<br />

Obrázek 3.7: Dělení pomocí hexag<strong>on</strong>álního schématu. V každém původním šestiúhelníku se vytvoří<br />

jeden nový poloviční (vlevo) a okrajové oblasti se následně spojí a vytvoří stejné šestiúhelníky<br />

(vpravo).<br />

Novým vrcholům je přiřazena souřadnice zprůměrováním středu stěny s odpovídajícím<br />

původním vrcholem. Přesněji<br />

1<br />

0, … ,5: <br />

2 1<br />

<br />

6 <br />

,<br />

<br />

kde značíme -tý vrchol šestiúhelníka při -tém dělení.<br />

Pro nás je opět zajímavé, že toto schéma bylo použito na adaptivní řešení LODu při zobrazování<br />

terénu v (93). Bohužel zmíněná implementace byla opět velmi neefektivní vzhledem k využití<br />

<strong>GPU</strong> (každý hexag<strong>on</strong> byl zobrazován zvlášť pomocí jednoho vějíře trojúhelníků) a její výsledky<br />

tedy nejsou přesvědčivé.<br />

<br />

<br />

52

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

Saved successfully!

Ooh no, something went wrong!