Základy počítačové grafiky Prezentace přednášek Ústav počítačové grafiky a multimédií Téma přednášky Textury 3D objektů Motto Objekty v reálném světě nejsou plastikové koule plující v prostoru kolem nás! Povrch reálných objektů má specifické vlastnosti Obsah: Textury 3D objektů. Vlastnosti povrchu definované texturou. Environment mapping. Bump mapping. Příklad lokomotivy. Příklad plastické mapy. Mapování textur. Textura na válci. Textura na kouli. Promítané textury. 3D textury. Perspektivní korekce textury. MIP-mapping. Základy počítačové grafiky / Textury 3D objektů 3 Základy počítačové grafiky / Textury 3D objektů 4
Textury 3D objektů Vlastnosti povrchu definované texturou Textura představuje způsob, jak přiřadit povrchu objektu různé proměnlivé vlastnosti. Textury umožňují větší realističnost a jednodušší geometrii modelů. Dělení textur: Dimenze (2D, 3D). Reprezentace: Mapa (obrázek). Procedura. Dva kroky použití textur: Vytvoření textury: Načtení mapy. Generování funkcí (procedurou). Nanesení textury hledání vhodné projekční funkce. Vlastnosti povrchu objektu, které je možné definovat texturou: Parametry povrchu (difuze, reflexe). Barva (barva povrchu, vzor, struktura, mapa). Změna geometrie skutečný posun bodů povrchu podle textury (displacement mapping). Odraz (odraz okolí na povrchu, viz. environmental mapping). Normála (optická změna povrchu beze změny jeho geometrie, hrbolatá textura, viz. bump mapping). Průhlednost (změna geometrie povrchu, alfa kanál RGBA, hypertextura). Základy počítačové grafiky / Textury 3D objektů 5 Základy počítačové grafiky / Textury 3D objektů 6 Environment mapping Simuluje odraz okolí na lesklém povrchu objektu. Globální realistické metody (raytracing) zajišťují, ze své podstaty, odraz okolí na povrchu. To se nehodí pro real-time zobrazení -> pomocné metody. Obraz okolí se vytvoří jako textura na obálce objektu (hranol, koule). Při zobrazení se textura okolí nanáší jako promítaná textura (viz. dále) na povrch objektu. Bump mapping Optická změna tvaru povrchu. Geometricky zůstává povrch beze změny (hranice obrazu). Podle gradientu v obraze bump textury se modifikují normály povrchu při výpočtu osvětlovacího modelu. Dochází ke změně barvy povrchu změnou normály, nikoli k posunu bodů. Vzniká efekt hrbolaté textury. Základy počítačové grafiky / Textury 3D objektů 7 Základy počítačové grafiky / Textury 3D objektů 8
Příklad - lokomotiva Příklad plastická mapa Základy počítačové grafiky / Textury 3D objektů 9 Základy počítačové grafiky / Textury 3D objektů 10 Mapování textur Nanášení textury na povrch objektu. Hledání vhodné projekční funkce. Je-li povrch popsán analytickou funkcí, lze pro mapování použít její inverzní funkci (pokud existuje). Promítané textury: textura se nanese na pomocnou plochu (hranol, kouli), ze které se promítá na povrch objektu (environmental mapping). Nerozvinutelné plochy deformují texturu (koule). Mapování 2D textury nalepení tapety na povrch objektu problém navazování textur. Mapování 3D textury vyřezání objektu z jednoho kusu materiálu. Svázání tří prostorů: textury (u,v), objektu (x,y,z), zobrazování (x,y). Textura na válci Mapujeme na válcovou plochu: Osa válce v ose Z. Podstava válce v počátku. Hledáme inverzní mapovací funkci M(x, y, z) pro převod (x, y, z) na (u, v). x = r cosθ y = r sinθ z 0, h θ 0, 1 x u = arccos, pro y 0 r 1 x u = 1 arccos, pro y > 0 r z v = h Základy počítačové grafiky / Textury 3D objektů 11 Základy počítačové grafiky / Textury 3D objektů 12
Textura na kouli Promítané textury Mapujeme na kulovou plochu, střed v počátku, poloměr r. Hledáme inverzní mapovací funkci M(x, y, z) pro převod (x, y, z) na (u, v). Rovinně x = r cosθ sinφ y = r sinθ sinφ z = r cosφ θ 0, φ π / 2, π / 2 Válcově 1 x u = arccos, pro y 0 2 2 x + y 1 x u = 1 arccos, pro y > 0 2 2 x + y 1 z v = 0,5 + arcsin π r Kulově Základy počítačové grafiky / Textury 3D objektů 13 Základy počítačové grafiky / Textury 3D objektů 14 3D textury Rozložení hodnot textury v prostoru je definováno 3D polem nebo procedurou. Mapování prostou transformací souřadnic z prostoru objektu do parametrického prostoru textury. Interpolace (trilineární) hodnot textury do prostru objektu. Velká spotřeba paměti pro 3D pole textury. Nejsou problémy s navazováním částí textury. Vytváří efekt vyřezání objektu z jednoho kusu materiálu. Metoda zobrazení objemových dat volume rendering. Perspektivní korekce textury Při zobrazování texturovaných objektů v perspektivě dochází k deformaci textur. Je to způsobeno pohledovou transformací vrcholů polygonů, ze kterých se lineární interpolací vypočítávají souřadnice textur až v prostoru zobrazení. Řešením je provádění mapování textury v prostoru objektu a transformace každého rasterizovaného bodu objektu zvlášť. Základy počítačové grafiky / Textury 3D objektů 15 Základy počítačové grafiky / Textury 3D objektů 16
MIP-mapping d u v Multum in parvo mnoho v malém. V jednom obraze je uloženo více obrazů s různým rozlišením. Důvod použití MIP textur: Zvýšení rychlosti zobrazení texturovaných objektů vhodným použitím menší textury. Odstraněním vzniku aliasu při zobrazení velkých textur z velké vzdálenosti. Ukládá RGB obrazy po složkách. V obraze 1024 2 jsou uloženy textury 512 2, 256 2, 128 2, 64 2, 32 2, 16 2, 8 2, 4 2, 2 2, 1 2. Tři souřadnice textury: u, v, d (souřadnice v pyramidě, podle vzdálenosti objektu). Základy počítačové grafiky / Textury 3D objektů 17