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.

nemáme potřebný detail k dispozici, použijeme nejvyšší nižší úroveň, v níž jsou data pro<br />

zobrazovanou oblast už načtena. Za cenu jisté ztráty kvality tak zajistíme plynulý chod.<br />

Hlavní význam clipmap souvisí s příchodem Shader Modelu 3.0, který umožňuje číst data<br />

z textury ve vertex bufferu, byť s omezeními. Protože výšku můžeme vrcholu přiřadit až ve<br />

vertex shaderu, nemusíme s každou aktualizací úrovně clipmapy přegenerovat její index buffer;<br />

stačí ve vertex bufferu použít správnou souřadnici pomocí toroidního mapování. Losasso a<br />

Hoppe, poukázali na možnost budoucí implementace clipmap na <strong>GPU</strong>, ale hardware podporující<br />

Shader Model 3.0 ještě nebyl k dispozici. V krátké době po jeho uvedení se však objevila celá řada<br />

různě upravených implementací. Holkner (54) použil clipmapu nejen na data výšek, ale také pro<br />

uložení předpočítaného osvětlení povrchu (tzv. lightmap). Obecně je možné použít clipmapu na<br />

jakákoli data, která dokážeme uložit do textury. Rose navrhl čtyři různé modifikace clipmap (55),<br />

například změnu poměru velikostí mezi úrovněmi clipmap z dvojnásobku na trojnásobek.<br />

Brettell ve své práci uvádí experimentální srovnání clipmap s ROAM a GeoMipMapingem (56).<br />

Velmi podrobný popis implementace clipmap na <strong>GPU</strong> najdeme v (57), kde je mimo jiné řešeno i<br />

ořezávání částí terénu podle viditelnosti. Méně rozsáhlou implementace s českým rozborem<br />

nalezneme v (58).<br />

Se Shader Modelem 4.0 přišla možnost definovat jednorozměrné pole textur, které je možné<br />

přímo indexovat ve vertex či pixel shaderu. Toho se dá také využít při implementace clipmap,<br />

neboť všechny úrovně je možné uložit do jediného pole a výběr úrovně řešit přímo na <strong>GPU</strong>. Při<br />

vhodně navržené implementaci by tak bylo možné zobrazovat všechny úrovně clipmapy<br />

najednou. Pole texturu užívá například (59), ovšem ne pro uložení výškové mapy, ale barevné<br />

textury podle původního návrhu (51). Existence řešení geometrických clipmap pomocí pole<br />

textur nám není známa.<br />

Obrázek 2.19: Síť představující sférickou clipmapu je vždy centrována kolem pozorovatele.<br />

P<strong>on</strong>ěkud odlišný přístup zvolili Clasen a Hege, kteří pro zobrazování povrchu planet navrhli<br />

strukturu nazvanou spherical clipmap (60). Klasická clipmapa se pro takový účel nedá snadno<br />

použít, proto přišli se sítí reprezentující povrch polokoule nebo její části. Síť je, podobně jako<br />

clipmapa, složena z vycentrovaných útvarů (v tomto případě kulových prstenců) narůstající<br />

velikosti, ale klesajícího detailu, jak ukazuje Obrázek 2.19. Problémem tohoto přístupu je<br />

38

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

Saved successfully!

Ooh no, something went wrong!