Aktuality  |  Články  |  Recenze
Doporučení  |  Diskuze
Grafické karty a hry  |  Procesory
Storage a RAM
Monitory  |  Ostatní
Akumulátory, EV
Robotika, AI
Průzkum vesmíru
Digimanie  |  TV Freak  |  Svět mobilně

3D technologie: Bump Mapping

20.7.2004, Zdeněk Kabát, článek
3D technologie: Bump Mapping
Po delší době se opět podíváme na 3D technologie používané v současných GPU. Pod drobnohled jsem si tentokrát vzal Bump Mapping, což je řada technik a algoritmů umožňujících pomocí 2D textur simulovat zakřivení povrchu apod. V článku poskytnu detailní popis Emboss, Environment a DOT3 Bump Mappingu (tzn. normálového mapování), okrajově se zmíním i o Displacement Mappingu.
Emboss Bump Mapping

Nejméně efektivní metodou Bump Mappingu je tzv. Emboss (nebo Embossing) Bump Mapping. Jeho základem je také výšková mapa, ale celkově se od ostatních technik velmi liší. Emboss BM je velice jednoduché implementovat a lze ho provozovat prakticky na libovolném 3D akcelerátoru. Ovšem jde spíše o pseudo Bump Mapping, protože nepracuje s normálami, tedy ani přímo s Gouradovým stínováním.

Emboss BM používá dvě různé metody, z čehož jedna je spíše hudbou let minulých. Dříve fungovala tato metoda na principu jedné výškové textury, která byla posunuta o určitou vzdálenost ve směru osvětlení a poté se původní a posunutá textura od sebe odečetly. Takto vznikla bump mapa, která aplikovaná na původní texturu vytvořila dojem prostoru.


Obr. 3 - Původní přístup k Emboss Bump Mappingu

Tato technika pracuje ve třech krocích (posunutí, odečtení, aplikování) a nemá žádné zvláštní požadavky na HW. Ovšem nevýhod, které z této techniky plynou, je několik. Za prvé nemůžete vytvořit jakýkoliv povrch chcete, ale jste vázáni na směr osvětlení a daný posun. Pokud by bylo třeba vytvořit složitější vzor, muselo by se použít několik map a více průběhů. Proto je efekt této metody velmi omezen. Dále dochází k chybám v případě velkého zakřivení povrchu, protože jak můžete vidět, původní Emboss BM se hodí převážně na rovné plochy. Navíc se počítá s globálním osvětlením, neboť v případě směrového světla (obzvláště nízko nad povrchem) je nejlepší používat k osvětlení normály. A tak dále, a tak dále…

Současný Emboss Bump Mapping se trochu odlišuje, ale přesto je v základě stejný, a proto si ponechává i nevýhody. Výšková mapa se upraví na dvě nové textury - jednu s poloviční intenzitou a jednu invertovanou s poloviční intenzitou. Tyto se opět ve směru osvětlení navzájem posunou a v poslední fázi se zkombinují s původní texturou, na kterou je aplikováno osvětlení.


Obr. 4 - Současná technika Emboss Bump Mappingu

Efekt je o něco lepší než u původního přístupu, ale řada problémů zůstala. Z dalších jmenujme např. případ, kdy je vzájemný posun obou textur malý, a proto je výsledná výšková mapa výrazně dotčena následnou filtrací (s bump mapou se zachází stejně jako s obyčejnou texturou). To může vést k následnému snížení kvality scény. Emboss Bump Mapping je také velice nevhodný pro pohyblivé scény.

Emboss BM lze také nahradit alpha-blendingem, ačkoliv tato metoda není úplně účinná. V praxi to funguje tak, že původní textura je transformována na černobílou a posunuta ve směru osvětlení. Dále je odečtena od původní textury a posunuta zpět. V poslední fázi dochází právě k alpha-blendingu (prolnutí). Nevýhodou je, že se takto posouvá celá scéna, tedy včetně hran polygonů. Proto vznikají artefakty, dvojité hrany apod.


Obr. 5 - Emboss Bump Mapping v 3DMarku 2000
Klikněte pro zvětšení

Abychom se vyhnuli všem nepříjemným dopadům Emboss Bump Mappingu, máme zde ale jiné techniky.