Textura a mapovací funkce Způsoby aplikace textury Použití textury pro prostorovou modifikaci povrchu Mipmapping Literatura.

Podobné dokumenty
Textury v real-time grafice Josef Pelikán, MFF UK Praha Josef.Pelikan@mff.cuni.cz

Počítačová grafika 2 (POGR2)

Osvětlování a stínování

Základy 3D modelování a animace v CGI systémech Cinema 4D C4D

Úvod Typy promítání Matematický popis promítání Implementace promítání Literatura. Promítání. Pavel Strachota. FJFI ČVUT v Praze

Geometrické transformace pomocí matic

Zobrazování a osvětlování

Reprezentace 3D modelu

Deformace rastrových obrázků

Počítačová grafika 1 (POGR 1)

11 Zobrazování objektů 3D grafiky

9 Prostorová grafika a modelování těles

Výpočet průsečíků paprsku se scénou

Ing. Jan Buriánek. Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Jan Buriánek, 2010

Reprezentace bodu, zobrazení

ak. rok 2013/2014 Michal Španěl,

Animace a geoprostor. První etapa: Animace 2. přednáško-cvičení. Jaromír Landa. jaromir.landa@mendelu.cz Ústav informatiky PEF MENDELU v Brně

7 Transformace 2D. 7.1 Transformace objektů obecně. Studijní cíl. Doba nutná k nastudování. Průvodce studiem

Rekurzivní sledování paprsku

Obsah A ROVINNÁ GRAFIKA 17

13 Barvy a úpravy rastrového

Perspektiva jako matematický model objektivu

PB001: Úvod do informačních technologíı

Jana Dannhoferová Ústav informatiky, PEF MZLU

Multimediální systémy. 11 3d grafika

Surfels: Surface Elements as Rendering Primitives

Výpočet průsečíků paprsku se scénou

1.8. Úprava uživatelského prostředí AutoCADu 25 Přednostní klávesy 25 Pracovní prostory 25

Vývoj počítačové grafiky

1 Topologie roviny a prostoru

Animace a geoprostor. První etapa: Animace 3. přednáško-cvičení. Jaromír Landa. jaromir.landa@mendelu.cz Ústav informatiky PEF MENDELU v Brně

Pokročilé osvětlovací techniky Josef Pelikán, MFF UK Praha

Gymnázium Jiřího Ortena, Kutná Hora. Průřezová témata Poznámky. Téma Školní výstupy Učivo (pojmy) volné rovnoběžné promítání průmětna

Katedra informatiky, Univerzita Palackého v Olomouci. 27. listopadu 2013

1. Reprezentace barev, míchání barev. 2. Redukce barevného prostoru. 3. Rasterizace objektů ve 2D.

Návod k použití softwaru Solar Viewer 3D

P R O M Í T Á N Í. rovina π - průmětna vektor s r - směr promítání. a // s r, b// s r,

Počítačová grafika RHINOCEROS

1. a) Určete parciální derivace prvního řádu funkce z = z(x, y) dané rovnicí z 3 3xy 8 = 0 v

Distribuované sledování paprsku

Matematika II, úroveň A ukázkový test č. 1 (2018) 1. a) Napište postačující podmínku pro diferencovatelnost funkce n-proměnných v otevřené

Reflections, refractions, interreflections

Matematika I 12a Euklidovská geometrie

MATEMATIKA II - vybrané úlohy ze zkoušek v letech

Transformace obrazu. Pavel Strachota. 16. listopadu FJFI ČVUT v Praze

Metamorfóza obrázků Josef Pelikán CGG MFF UK Praha

2D grafika. Jak pracuje grafik s 2D daty Fotografie Statické záběry Záběry s pohybem kamery PC animace. Počítačová grafika, 2D grafika 2

Téma: Vektorová grafika. Určete pravdivost následujícího tvrzení: "Grafická data jsou u 2D vektorové grafiky uložena ve voxelech."

Geometrické transformace obrazu

PŘÍKLADY K MATEMATICE 3 - VÍCENÁSOBNÉ INTEGRÁLY. x 2. 3+y 2

DATOVÉ FORMÁTY GRAFIKY, JEJICH SPECIFIKA A MOŽNOSTI VYUŽITÍ

Generování sítě konečných prvků

Geometrické transformace obrazu a související témata. 9. přednáška předmětu Zpracování obrazů

Lineární algebra : Metrická geometrie

MATEMATIKA II - vybrané úlohy ze zkoušek ( 2015)

Matematika 1 MA1. 1 Analytická geometrie v prostoru - základní pojmy. 4 Vzdálenosti. 12. přednáška ( ) Matematika 1 1 / 32

Matematika II, úroveň A ukázkový test č. 1 (2016) 1. a) Napište postačující podmínku pro diferencovatelnost funkce n-proměnných v otevřené

19 Eukleidovský bodový prostor

HVrchlík DVrchlík. Anuloid Hrana 3D síť

Technické zobrazování

SPŠ STAVEBNÍ České Budějovice MAPOVÁNÍ. JS pro 3. ročník S3G

Mgr. Tomáš Kotler. I. Cvičný test 2 II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

Fyzikálně založené modely osvětlení

VZÁJEMNÁ POLOHA DVOU PŘÍMEK V ROVINĚ

MATEMATIKA III. π π π. Program - Dvojný integrál. 1. Vypočtěte dvojrozměrné integrály v obdélníku D: ( ), (, ): 0,1, 0,3, (2 4 ), (, ) : 1,3, 1,1,

VYTVOŘENÍ 3D MODELŮ A NÁVODŮ PRO POČÍTAČOVÉ CVIČENÍ KURZU MODERNÍ POČÍTAČOVÁ GRAFIKA

Precomputed radiance transfer

AXONOMETRIE. Rozměry ve směru os (souřadnice bodů) jsou násobkem příslušné jednotky.

Mechanika

Matematika II, úroveň A ukázkový test č. 1 (2017) 1. a) Napište postačující podmínku pro diferencovatelnost funkce n-proměnných v otevřené

Zobrazování těles. problematika geometrického modelování. základní typy modelů. datové reprezentace modelů základní metody geometrického modelování

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

PŘEDNÁŠKA 6 INTEGRACE POMOCÍ SUBSTITUCE

Výpočet vržených stínů

Počítačová geometrie. + algoritmy DG

Souřadnicové prostory

1 Báze a dimenze vektorového prostoru 1

Hierarchický model Josef Pelikán CGG MFF UK Praha. 1 / 16

Geometrické transformace

Základy vizualizace. Výpočetní metody

ANALYTICKÁ GEOMETRIE LINEÁRNÍCH ÚTVARŮ V ROVINĚ

Jiří Cajthaml. ČVUT v Praze, katedra geomatiky. zimní semestr 2014/2015

Rovinné přetvoření. Posunutí (translace) TEORIE K M2A+ULA

Světlo je elektromagnetické vlnění, které má ve vakuu vlnové délky od 390 nm do 770 nm.

Cvičné texty ke státní maturitě z matematiky

AXONOMETRIE - 2. část

Rotace ve 3D a kvaterniony. Eva Blažková a Zbyněk Šír (MÚ UK) - Rotace ve 3D a kvaterniony 1 / 16

Mgr. Ladislav Zemánek Maturitní okruhy Matematika Obor reálných čísel

VIDEOSBÍRKA DERIVACE

Lineární transformace

12 Metody snižování barevného prostoru

Úvod Některé algoritmy pro řešení viditelnosti Literatura. Řešení viditelnosti. Pavel Strachota. FJFI ČVUT v Praze. 11. dubna 2012

Datové struktury pro prostorové vyhledávání

ŠROUBOVICE. 1) Šroubový pohyb. 2) Základní pojmy a konstrukce

1. Přímka a její části

14. přednáška. Přímka

MATURITNÍ TÉMATA Z MATEMATIKY

OBECNOSTI KONVERGENCE V R N

11 Vzdálenost podprostorů

Transkript:

Mapování textur Pavel Strachota FJFI ČVUT v Praze 28. dubna 2010

Obsah 1 Textura a mapovací funkce 2 Způsoby aplikace textury 3 Použití textury pro prostorovou modifikaci povrchu 4 Mipmapping

Obsah 1 Textura a mapovací funkce 2 Způsoby aplikace textury 3 Použití textury pro prostorovou modifikaci povrchu 4 Mipmapping

Textura textura = popis vlastností povrchu - struktury, barvy, kvality pravidelná či nepravidelná pro dobrý dojem stačí mnohdy jednoduchá geometrie a detailní textura textura může obsahovat informace o barvě povrchu odrazu světla (změna zrcadlové složky barvy materiálu m S - viz osvětlování) změně normálového vektoru - opticky mění tvar povrchu = hrbolatost (metoda bump mapping) průhlednost optických vlastnostech nad povrchem - tzv. hypertextura

Typy textur rozdělení podle dimenze jednorozměrné - definice opakujících se podélných vzorků, generování přerušovaných čar, vrstevnic dvourozměrné - mapovány na povrch tělesa trojrozměrné (objemové) - simulace objektů vyříznutých z bloku materiálu (dřevo, mramor,...) čtyřrozměrné - animace rozdělení podle reprezentace tabulka (obrázek, pole voxelů) volání funkce (procedurální textury)

Inverzní mapování textury úloha: nanést dvourozměrnou texturu na povrch tělesa textura popsána parametricky: T = T (u, v), T : D T H T - texturové souřadnice u, v (inverzní) mapování textury je transformace M : D M D T, kde D M R 3 je množina bodů tvořící povrch tělesa důvod názvu: je-li plocha popsaná parametricky funkcí Q (s, t), lze M volit jako M = Q 1 (pokud inverzní zobrazení existuje) jinak: s, t lze při vykreslování povrchu použít přímo jako texturové souřadnice (resp. po škálování) hodnota textury v bodě x D M je (T M) (x) zborcené povrchy (nelze bez deformace rozvinout do roviny) = zkreslení textury

Texturové souřadnice polygonální sít - ve vrcholech v i uloženy mimo jiné texturové souřadnice u, v, tj. hodnota M (v i ) pro bod x uprostřed trojúhelníku najdeme M (x) interpolací hodnot ve vrcholech texturové souřadnice uloženy při modelování objektu podle způsobu generování sítě dělení parametrických kubických povrchů - z parametrů s, t mapování na povrch krychle mapování na kulovou plochu - sférická projekce mapování na povrch válce - cylindrická projekce...

Mapování na povrch krychle

Sférické souřadnice

Sférická projekce 1/2 koule umístěna do počátku souř. soustavy sférické souřadnice x = r cos ϕ cos θ, y = r sin ϕ cos θ, z = r sin θ, kde ϕ [0, 2π], θ [ π 2, π ] 2. smysl parametrů u, v budou mít úhly ϕ, θ (případně po škálování) zpětná transformace: ϕ = arccos x y 0 x 2 +y 2 x 2π arccos y < 0 x 2 +y 2 θ = arcsin z r = arcsin z x 2 + y 2 + z 2

Sférická projekce 2/2 Alternativní výpočet úhlu ϕ polární souřadnice x = r cos ϕ, y = r sin ϕ výpočet ϕ [ π, π]: arctan y x x > 0 arctan y x + π x < 0, y > 0 arctan y ϕ = x π x < 0, y < 0 π 2 x = 0, y > 0 3π 2 x = 0, y < 0 0 x = y = 0 toto je definice funkce atan2(y,x)v různých programovacích jazycích (C, Fortran, Java, C#, Perl, Lisp,...) chování v x = y = 0 se někdy liší

Mapování textury na kouli φ = ϕ, ρ = θ + π 2

Cylindrická projekce cylindrické souřadnice x = r cos ϕ y = r sin ϕ z = z zpětná transformace ϕ = atan2 (y, x) smysl texturových souřadnic u, v mají ϕ a z (příp. po škálování)

Příklady

Příklady

Korespondenční funkce předzpracování texturových souřadnic funkcí C zobecněné schéma: M : D M D C, C : D C D T, T : D T H T D C... dvourozměrný parametrický prostor D T = [0, 1] 2 texturové souřadnice omezené do jednotkového čtverce (OpenGL, DirectX) hodnota textury v bodě x D M je (T C M) (x) význam: posunutí, rotace, zkosení textury, dodefinování mimo definiční obor textury

Dodefinování textury wrap (tile, repeat) - opakování textury: C (u, v) = (frac (u), frac (v)) mirror - zrcadlení textury (opakování se zrcadlením v každém směru) clamp (clamp to edge) - C (u, v) ořízne hodnoty u, v na interval [0, 1] border (clamp to border) - mimo D T je dána pevná barva hranice

Perspektivně korektní mapování vykreslení obrysu trojúhelníku: promítnou se vrcholy a spojí se čarami (vlastně lineární interpolace poloh vrcholů na obrazovce) vyplněné trojúhelníky kreslíme po pixelech - barvu, resp. texturové souřadnice (definované ve vrcholech) lineárně interpolujeme v rámci : 1 vzhledem k poloze na obrazovce - špatně (v perspektivě délky závisí na vzdálenosti od pozorovatele) 2 vzhledem ke skutečné poloze pixelu v trojúhelníku ve 3D - nutnost zpětné transformace do souřadnic scény (WCS - viz promítání) nejefektivnější řešení: racionálně lineární (hyperbolická) interpolace texturových souřadnic v homogenních souřadnicích VCS (souřadnicích v průmětně) - lineárně se interpoluje i čtvrtá souřadnice W v realtimových systémech lze volitelně zapnout (OpenGL)

Příklady perspektivně (ne)korektního mapování Nekorektní (lineární interp. ve VCS) Korektní (hyperbolická interp. ve VCS)

Příklady perspektivně (ne)korektního mapování Nekorektní mapování

Příklady perspektivně (ne)korektního mapování Korektní mapování

Příklady perspektivně (ne)korektního mapování Vlevo: triangulace obdélníku a lineární interpolace na každém trojúhelníku zvlášt

Obsah 1 Textura a mapovací funkce 2 Způsoby aplikace textury 3 Použití textury pro prostorovou modifikaci povrchu 4 Mipmapping

Modifikace vlastností povrchu povrch má sám o sobě materiálové vlastnosti (barvy m A, m D, m S, exponent zrcadlového odrazu atd. ), definované obvykle ve vrcholech a interpolované v pomocí textury tyto vlastnosti nahradíme nebo modifikujeme při Gouraudově stínování modifikujeme přímo výslednou interpolovanou barvu: replace (glow texture) - textura nahradí barvu získanou na základě globálních vlastnosti materiálu, odstraní vliv osvětlování na povrch decal (potisk) - textura obsahuje kanál alfa, původní barva povrchu je barvou pozadí pro průhlednost modulate - barva povrchu se vynásobí barvou textury (někdy je realističtější modulovat pouze difuzní složku m D - např. i černý povrch se leskne)

Ne-barevné složky textury light mapping - textura obsahující informace o osvětlení, jestliže je osvětlení statické možnost předpočítat metodou globálního osvětlování (radiozita apod.) stačí menší rozlišení než obrazová textura gloss mapping - modifikuje příspěvek zrcadlové složky (rozliší matné a lesklé části povrchu)

Environment mapping 1/4 Blinn, Newell generování odlesků na zakřivených objektech paprsky vedené od pozorovatele k lesklému objektu tolik paprsků, kolik je pixelů v průmětu objektu s pomocí normály povrchu se vypočítá směr odraženého paprsku nezkoumá se průsečík odraženého paprsku s ostatními objekty ve scéně (raytracing), ale průsečík s texturou okolí objekt je obklopen tělesem (koulí, krychlí), na níž je namapována textura s obrazem okolní scény

Environment mapping 2/4 Metoda pole Blinna a Newella e... vektor paprsku od pozorovatele, e = 1 r = e 2 (n e) n je vektor odrazu r = (r x, r y, r z ), r = 1 transformace do sférických souřadnic φ [0, 2π]... zeměpisná délka ρ [0, π]... zeměpisná šířka φ = atan2 (r y, r x ) ρ = arccos ( r z ) textura musí navazovat na krajích ve směru φ (zem. délky) a musí se eliminovat zkreslení na pólech

Environment mapping 3/4 Metoda podle Greena obalové těleso je krychle se středem v poloze kamery obrazy na stěnách krychle = mapy okolí rychlá, jednoduchá metoda, HW implementace rovnoměrnější rozdělení vzorků (u Blinnovy metody potřeba vyšší hustoty vzorků v okolí pólů) nefunguje dobře pro ploché objekty (je vidět efekt obklopující krychle), nebo pro rovnoběžné promítání

Environment mapping Příklady sítí krychle

Environment mapping Příklady sítí krychle

Environment mapping Příklady sítí krychle

Obsah 1 Textura a mapovací funkce 2 Způsoby aplikace textury 3 Použití textury pro prostorovou modifikaci povrchu 4 Mipmapping

Bump mapping 1/4 technika pro iluzi hrbolatých, zvrásněných či jinak lokálně nerovných povrchů hodnoty textury modifikují směr normálového vektoru v každém bodě = iluze nerovnosti se projeví při nasvícení, povrch je však stále rovný možnosti uložení textury: 2 hodnoty pro každý bod určující posunutí n ve dvou navzájem kolmých směrech (v rovině trojúhelníku) skalární textura - výškové pole přímo pole normálových vektorů

Bump mapping 2/4 Schéma metod modifikace normály

Bump mapping 3/4 Schéma aplikace výškového pole

Bump mapping 3/4 Schéma aplikace výškového pole

Bump mapping 4/4 Další příklady aplikace

Bump mapping 4/4 Další příklady aplikace

Bump mapping 4/4 Další příklady aplikace Sweaty Simon SkinVue rendering system, Poser

Displacement mapping nevýhody bump mappingu na obrysech objektu je stále vidět jeho původní (rovný) tvar nerovnosti nevrhají stín řešení: texturu výšek použít ke skutečné modifikaci povrchu - mapa posunutí (displacement) metody posunutí posunutí vrcholů původní polygonální sítě rozdělení sítě na mikropolygony, jejichž velikost je určena adaptivně, aby v daném pohledu nepřekročily velikost pixelu

Displacement mapping Schéma aplikace

Displacement mapping vs. bump mapping

Displacement mapping vs. bump mapping

Obsah 1 Textura a mapovací funkce 2 Způsoby aplikace textury 3 Použití textury pro prostorovou modifikaci povrchu 4 Mipmapping

Motivace texel = texture element (analogie pixelu) standardní rozměry obrazové textury jsou 2 m 2 m, m N - typicky 512 512 texelů při mapování na objekt (povrch) se používá bilineární interpolace - pixel ovlivněn max. 4 texely přílišné zvětšení (přiblížení objektu) = jeden texel ovlivní barvu mnoha pixelů dostatečné zmenšení (oddálení) = více texelů se (teoreticky) zobrazí do jednoho pixelu pokud je to více než 4, vzniká aliasing i přes použití interpolace odstranění aliasingu - filtrování (např. průměrování) textury přes celou oblast ovlivňující daný pixel (low pass filtr - snížení max. frekvence v textuře)

Mipmapping filtrování - velká výpočetní náročnost, problém při HW zpracování (streamline) mipmapping - předpočítání zmenšených filtrovaných kopií textury a jejich uložení v paměti při mapování textury se pak jen zvolí vhodná kopie (aby 1 texel 1 pixel - viz dále) MIP = lat. multum in parvo, tj. mnoho v málu

Mipmapping Způsob uložení v paměti rozklad na R,G,B složky, celkem se použije o 1 3 více paměti než na původní texturu zmenšené kopie na 1 2 v každém směru až do velikosti 1 1 pixel (2 n, n = m, m 1,..., 0)

Mipmapping Trilineární interpolace kopie textury lze uspořádat do pomyslné pyramidy kromě texturových souřadnic u, v vypočítáme ještě parametr d - výšku v pyramidě, tj. úroveň zmenšení vybereme bud kopii, která je nejblíže d, nebo interpolujeme mezi dvěma nejbližšími kopiemi = trilineární interpolace v u, v, d

Mipmapping Trilineární interpolace kopie textury lze uspořádat do pomyslné pyramidy kromě texturových souřadnic u, v vypočítáme ještě parametr d - výšku v pyramidě, tj. úroveň zmenšení vybereme bud kopii, která je nejblíže d, nebo interpolujeme mezi dvěma nejbližšími kopiemi = trilineární interpolace v u, v, d

Mipmapping Výpočet úrovně zmenšení d 1 texel má přibližně odpovídat 1 pixelu obvykle hodnota d dána delší stranou čtyřúhelníku vzniklým zpětným mapováním pixelu (přes texturovaný polygon) do texturových souřadnic - pokud je to v původní textuře t texelů, je třeba zmenšit log 2 t - krát

Mipmapping Srovnání s přímým mapováním textury Bodové vzorkování Trilineární interpolace

Mipmapping Vlastnosti výhoda mipmappingu - předpočítání textur (filtrování) lze provést kvalitně (a klidně pomalu), vlastní vykreslování je rychlé nevýhoda - při pohledu na polygon z velkého úhlu (od normály) dochází k rozmazání textury v obou směrech (nejen ve směru od pozorovatele) řešení přílišného rozmazání rozlišit směr, ve kterém se textura komprimuje, od směru na něj kolmého ripmapping anizotropní filtrování

Ripmapping akcelerátory HP, 90. léta ukládáme nejen zmenšené kopie v obou směrech zároveň, ale také v každém ze směrů zvlášt dobře funguje jen pro orientace polygonů ve shodě s osami textury

Ripmapping akcelerátory HP, 90. léta ukládáme nejen zmenšené kopie v obou směrech zároveň, ale také v každém ze směrů zvlášt dobře funguje jen pro orientace polygonů ve shodě s osami textury

Anizotropní filtrování jako mipmapping (včetně trilineární interpolace), ale pro výpočet d se bere kratší strana promítnutého pixelu směr delší strany definuje osu anizotropie v mip-mapě (úrovni zmenšení) určené d se průměruje (nebo jinak filtruje) několik vzorků podél osy jejich počet závisí na míře anizotropie = poměru delší a kratší strany promítnutého pixelu

Anizotropní filtrování Příklady

Anizotropní filtrování Příklady

Literatura 1/2 Žára, Beneš, Sochor, Felkel: Moderní počítačová grafika. Computer Press, 2005. J. Blinn: Hyperbolic interpolation. IEEE Computer Graphics and Applications, 1992. J. Blinn: Simulation of wrinkled surfaces. SIGGRAPH 1978, (1978) 286293. J. Blinn, M. Newell: Texture and reflection in computer generated images. Communications of the ACM, 19 (1976), 542547. S. R. Buss: 3D Computer Graphics: A Mathematical Introduction with OpenGL. Cambridge University Press, 2003.

Literatura 2/2 N. Greene: Environment mapping and other applications of world projections. IEEE Computer Graphics and Applications, 6 (1986), 2129. L. Williams: Pyramidal Parametrics. ACM SIGGRAPH Computer Graphics 7 (1983), 111.