Terrain Processing on Modern GPU - Computer Graphics Group ...
Terrain Processing on Modern GPU - Computer Graphics Group ...
Terrain Processing on Modern GPU - Computer Graphics Group ...
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