Základy počítačové grafiky
Téma přednášky
Prezentace přednášek
Textury 3D objektů
Ústav počítačové grafiky a multimédií
Motto
Obsah: • • • • • • • • • • • • •
„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
Základy počítačové grafiky / Textury 3D objektů
3
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ů
4
Textury 3D objektů
Vlastnosti povrchu definované texturou • Vlastnosti povrchu objektu, které je možné definovat 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:
– 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).
– 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. Základy počítačové grafiky / Textury 3D objektů
5
Environment mapping
Základy počítačové grafiky / Textury 3D objektů
Bump 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.
Základy počítačové grafiky / Textury 3D objektů
6
7
• 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ů
8
Příklad - lokomotiva
Příklad – plastická mapa
Základy počítačové grafiky / Textury 3D objektů
9
Mapování textur
10
Textura na válci • • • •
• • • •
Základy počítačové grafiky / Textury 3D objektů
Základy počítačové grafiky / Textury 3D objektů
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). 11
• 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, 2π
1 x ⋅ arccos , pro y ≤ 0 2π r 1 x u = 1− ⋅ arccos , pro y > 0 2π r z v= h u=
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).
x = r ⋅ cos θ ⋅ sin φ
θ ∈ 0, 2π
y = r ⋅ sin θ ⋅ sin φ z = r ⋅ cos φ
φ ∈ − π / 2, π / 2
u=
Válcově
x 1 ⋅ arccos , pro y ≤ 0 2π x2 + y2
u = 1−
x 1 ⋅ arccos , pro y > 0 2π x2 + y2
v = 0,5 +
Základy počítačové grafiky / Textury 3D objektů
Rovinně
1
π
⋅ arcsin
Kulově
z r
13
3D textury
Základy počítačové grafiky / Textury 3D objektů
Perspektivní korekce 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.
Základy počítačové grafiky / Textury 3D objektů
14
15
• 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ů
16
MIP-mapping d
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.
u Základy počítačové grafiky / Textury 3D objektů
• Ukládá RGB obrazy po složkách. • V obraze 10242 jsou uloženy textury 5122, 2562, 1282, 642, 322, 162, 82, 42, 22, 12. • Tři souřadnice textury: u, v, d (souřadnice v pyramidě, podle vzdálenosti objektu). 17