Textury v real-time grafice. 2004-2005 Josef Pelikán, MFF UK Praha http://cgg.ms.mff.cuni.cz/~pepca/ Josef.Pelikan@mff.cuni.cz

Podobné dokumenty
3D počítačová grafika na PC Josef Pelikán, MFF UK Praha

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

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

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

27. listopadu 2013, Brno Připravil: David Procházka

Základní techniky zobrazování Josef Pelikán, MFF UK Praha

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

Surfels: Surface Elements as Rendering Primitives

Textury. Petr Felkel, Jaroslav Sloup a Vlastimil Havran

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ě

Rekurzivní sledování paprsku

Pokročilé metody fotorealistického zobrazování

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

Pokročilé techniky Josef Pelikán, MFF UK Praha

11 Zobrazování objektů 3D grafiky

GEOGRAFICKÉ INFORMAČNÍ SYSTÉMY 6

Reprezentace 3D scény

Uživatelská. príručka. osvetlení, kine. telským prostr.. modelování, t. materiálu a tex. animaee III. III seznámení s K INFORMACÍM

Realtime zobrazování vodní hladiny na dnešních GPU. Jan Horáček

HDR obraz (High Dynamic Range)

Rozdìlení poèítaèové grafiky

Základy OpenGL Josef Pelikán CGG MFF UK Praha. OpenGL / 34

Rastrový obraz, grafické formáty

Deformace rastrových obrázků

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

Reprezentace 3D modelu

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

3D ANIMACE POSTAVY V POČÍTAČOVÉ GRAFICE ANIMATION OF 3D CHARACTER IN COMPUTER GRAPHICS

SOFTWARE NA ZPRACOVÁNÍ MRAČEN BODŮ Z LASEROVÉHO SKENOVÁNÍ. Martin Štroner, Bronislav Koska 1

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

LIGHTS AND SHADOWS SCENE ILLUMINATION RADIOSITY HDRI

Programovatelné shadery a jazyk Cg. Petr Kmoch

Programování shaderů GLSL

GRAFICKÉ ADAPTÉRY. Pracovní režimy grafické karty

Distribuované sledování paprsku

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

Reprezentace bodu, zobrazení

Hardware pro počítačovou grafiku NPGR019

CGI. Computer generated imagery Počítačové triky Animované filmy Počítačové hry. Technologické trendy v AV tvorbě, CGI 2

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

Staré mapy TEMAP - elearning

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

Geekovo Minimum. Počítačové Grafiky. Nadpis 1 Nadpis 2 Nadpis 3. Božetěchova 2, Brno

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

3D Vizualizace muzea vojenské výzbroje

Fakulta informačních technologíı. IZG cvičení 6. - Zobrazování 3D scény a základy OpenGL 1 / 38

13 Barvy a úpravy rastrového

Výukové materiály pro výuku 3D grafiky na SOŠ

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

Co je grafický akcelerátor

Otázky z kapitoly Stereometrie

Seznámení s moderní přístrojovou technikou Laserové skenování

Vyplňování souvislé oblasti

Katedra aplikované matematiky FEI VŠB Technická univerzita Ostrava

Perspektiva jako matematický model objektivu

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

Textury a šumové funkce

Dodatek č. 3 ke školnímu vzdělávacímu programu. Strojírenství. (platné znění k )

01_Grafické rozhraní

Textury. !POZOR! tento text vás nenaučí dělat ve Photoshopu, pouze ukazuje na možnosti využití některých funkcí.

Grafická data jsou u 2D vektorové grafiky uložena ve voxelech NEPRAVDA Grafická data jsou u rastrové grafiky uložena v pixelech PRAVDA Grafická data

PŘEDSTAVENÍ GRAFICKÉHO PROCESORU NVIDIA G200

Vzdělávací oblast: Matematika a její aplikace Vyučovací předmět: Matematika Ročník: 5.

Bc. Martin Dušek. Fakulta elektrotechnická. Studijní program: Elektrotechnika a informatika strukturovaný magisterský

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

GPU A CUDA HISTORIE GPU CO JE GPGPU? NVIDIA CUDA

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

3D počítačová grafika na PC

Zdroj:

Photon-Mapping Josef Pelikán CGG MFF UK Praha.

Zdroj:

MATEMATIKA Charakteristika vyučovacího předmětu 2. stupeň

České vysoké učení technické v Praze Fakulta elektrotechnická Katedra počítačů

IVT. Rastrová grafika. 8. ročník

Optické měřicí 3D metody

spsks.cz 3D Modelování Zpracováno v rámci projektu CZ.1.07/3,2, 10/ financovaného z fondů EU

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

Jana Dannhoferová Ústav informatiky, PEF MZLU

Transformace 2D. Transformace. Souřadnicové systémy. Vektorová a rastrová grafika. Přednáška 7

CORELDRAW PRÁCE S RASTRY. Lenka Bednaříková

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

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

Fotonové mapy. Leonid Buneev

Počítačová grafika 1. Úvod do grafiky, základní pojmy. Rastrová grafika.

SPIRIT Nové funkce. SOFTconsult spol. s r. o., Praha

Masivně paralelní zpracování obrazu v prostředí systému VisionLab Liberec Roman Cagaš, rc@mii.cz

Univerzita Pardubice Fakulta ekonomicko-správní. Počítačová grafika a geometrické transformace v rovině a prostoru. Eva Hladíková

Bakalářská práce Editor vizuálních vlastností objektů pro real-time grafiku

Úvod do počítačové grafiky

Základní škola Moravský Beroun, okres Olomouc

X39RSO/A4M39RSO Vychýlené (biased) metody globálního osvětlení. Vlastimil Havran ČVUT v Praze CTU Prague Verze 2011

B_PPG PRINCIPY POČÍTAČOVÉ GRAFIKY

Datové formáty grafiky, jejich specifika a možnosti využití. L u b o š T o m e š e k U M T M a n a ž e r s k á i n f o r m a t i k a 2015/ 16

Zobrazovací a zvuková soustava počítače

GYMNÁZIUM, VLAŠIM, TYLOVA

BAKALÁŘSKÁ PRÁCE. Optimalizace trojúhelníkových sítí v E 3 a jejich zobrazování / 2000 Jan Doubek

Zobrazování a osvětlování

Základy počítačové grafiky

vztažný systém obecné napětí předchozí OBSAH další

Grafické adaptéry a monitory

Transkript:

Textury v real-time grafice 2004-2005 Josef Pelikán, MFF UK Praha http://cgg.ms.mff.cuni.cz/~pepca/ Josef.Pelikan@mff.cuni.cz

Textury vylepšují vzhled povrchu těles modifikace barvy ( bitmapa ) dojem hrbolatého povrchu ( bump-texture ) příp. modulace dalších parametrů: průhlednost, odrazivost, lesk, osvětlení z okolí Definice textury: 1D, 2D datovým polem (rastr, bitmapa ) nejčastější, umí to každý HW 3D datovým polem ( volume texture ) procedurálně algoritmem v každém pixelu (programovatelné GPU)

Definiční obory textur R N V α α explicitní [s,t] [x,y,z] nebo projektor T

Mapování textur 2D textury se musí na povrch tělesa mapovat texturové souřadnice [ u, v ] (v OpenGL [ s, t ]) se zadávají v každém vrcholu grafický akcelerátor je interpoluje do jednotlivých pixelů v bitmapě se musí intepolovat (mezi sousedními pixely textury = texely ) v v u u Coke Coke

Automatické projektory grafický HW umí některé projekce 3D 2D úspora přenosu dat z CPU na GPU dostupné projektory (viz gltexgen): sférická projekce (singularita na pólu) cylindrická projekce lineární projekce (používá se často i pro 1D texturu) uživatelské transformační matice pro texturové souřadnice (viz mód GL_TEXTURE) mohou pracovat i s homogenní složkou (perspektiva) animace textur na povrchu těles

Opakování textur standardní rozsah texturovacích souřadnic: [0,1] D jak se zobrazí údaje mimo tento rozsah? cyklické opakování (repeat, wrap, tile) zrcadlové opakování (mirror, flip) každá druhá dlaždice se zrcadlově převrátí může vést k lepší (automatické) spojitosti textury nejbližší texel (clamp, clamp to edge) odolnost k numerickým chybám na okraji textury explicitní okraj (border, clamp to border) zadán explicitně nebo jedním řádkem/sloupcem textury

Opakování: repeat, mirror repeat Tex Tex Tex Tex Tex Tex Tex Tex Tex mirror

Opakování: clamp, border Tex Tex clamp border

Transformace texturových souřadnic maticové transformace prováděné na GPU obecná homogenní matice 4 4 vektor texturových souřadnic: [ s, t, r, q ] q hraje roli homogenní složky (projektivní transformace) OpenGL: další zásobník transformačních matic GL_TEXTURE dá se nastavit individuálně pro každou texturovací jednotku = každá TU (viz dále) má svůj zásobník

Kombinace textur moderní GPU umějí v jednom pixelu kombinovat několik textur ( multitexturing ) globální (pomalu se měnící) základ + detailní textura předem spočítané osvětlení ( light-map ) environment maps odlesk zbytku scény apod....

Kombinace textur běžně implementované kombinační funkce: REPLACE (ignoruje se původní barva) MODULATE (násobení jen snižuje původní barvu) DECAL (poloprůhledná textura na barevný povrch) INTERPOLATE (lineární interpolace 2 argumentů) DOT3_RGB[A] (skalární součin složek, pro 3D) ADD, ADD_SIGNED, SUBTRACT,.. programovatelné GPU ( fragment shader ) mají potenciálně neomezené možnosti

Texturovací jednotky jedna texturovací jednotka (TU): vybírá hodnotu z jedné textury (i s filtrováním, viz) realizuje zadanou kombinační funkci výsledek se zapisuje do výstupního fragmentu vstupy (argumenty) kombinační funkce: předchozí barva (výstup předcházející TU) data z textury (přečtený/filtrovaný texel) konstantní barva (viz GL_TEXTURE_ENV_COLOR) primární barva (před texturováním = interpolovaná barva z rasterizační jednotky)...

Texturovací kaskáda lineární zapojení texturovacích jednotek: primární barva TU 0 Tex0 data Tex1 data TU 1 Tex2 data TU 2 výsledná barva fragmentu

Příklad složitějšího zapojení TU Global TU 1 + diffuse Detail Diffuse light map Specular irradiance map TU 2 * TU 5 + result fragment color [ Global specular ] Gloss map TU 3 * TU 4 * specular

Komprese textur - S3TC první použití: S3 v DirectX 6 (1998) DXTC, v OpenGL: S3TC, DXT1 pevný kompresní poměr výhodné pro plánování spotřeby paměti 4:1 až 6:1 ztrátová komprese 00 11 10 01 rozklad textury na bloky ( tiles ) velké 4 4 každý blok je reprezentován dvěma 16-bitovými barvami a 16 2-bitovými indexy (tj. celkem 4 bpp) dvě extrémní barvy (R5G6B5), mezi nimi další 2 mezibarvy (nebo 1 mezibarva a černá) každý originální pixel je nahrazen odkazem na jednu barvu

Komprese textur další metody NVIDIA VTC (Volume Texture Compression) 3D varianta S3TC bloky dat 4 4 1, 4 4 2 nebo 4 4 4 3DFX komprese FXT1 (1999) 8 4 texelů se uloží do 128 bitů paměti (tj. také 4bpp) 4 různé formáty bloků (rozhoduje o nich kodér) CC_HI: 2 R5G5B5, 32 3-bit kód (5 mezi a 1 průhledná) CC_CHROMA: 4 R5G5B5, 32 2-bit kód (původ. barvy) CC_MIXED: 4 R5G5B5, 32 2-bit kód (2 pro každý 4 4 čtverec, komplikované sub-formáty) CC_ALPHA: 3 R5G5B5A5, 32 2-bit kód (lerp/nlerp)

Pokročilé techniky přehled Nejdůležitější techniky užívané při texturování: mip-mapping a neizotropické filtrování gloss mapping (lesklá odrazivost, moduluje odlesk) light mapping ( dark mapping ) osvětlení shadow mapping předem spočítaný stín bump mapping (modulace normály) environment mapping (okolní světlo) víceprůchodové zpracování, multitexturing nemusí být potřeba programovatelná GPU

Filtrování textur textury pozorované z velké dálky se také musejí filtrovat (průměrovat při zmenšování) jinak by se projevil alias zrnění při pohybu kamery existuje několik technik, jak si zmenšené textury předem připravit: MIP-map ( multum in parvo ) je asi nejznámější ripmap (Hewlett-Packard) obsahuje i neizotropní zmenšeniny neizotropní filtrace dynamicky se počítá, v jakém poměru se má textura zmenšit, sčítá se jen pár texelů součtové tabulky předem sečtené UL obdélníky

MIP-mapping předem se textura zmenší na binární zlomky (1/4, 1/16, apod. umí spočítat GPU) při zmenšování se použije průměrování barev v sousedních pixelech pro 3-kanálovou barvu (např. RGB) existuje šikovné uspořádání MIP-mapy zmenšená čtvrtina textury se v paměti uloží místo chybějící čtvrté složky použití MIP-mapy určí se úroveň a z ní se přečte texel (rychlost) interpoluje se mezi dvěma úrovněmi MIP-mapy, případně ještě mezi čtyřmi sousedy v nich (kvalita)

MIP-mapa R 3 R 2 B 3 G 3 B 2 G 2 B 1 B 0 R 1 G 1 R 0 G 0

Neizotropické filtrování zpětně promítnutý pixel má na textuře tvar deformovaného čtverce z MIP-mapy se vybere taková úroveň, aby měla kratší strana toho čtyřúhelníka délku cca jednoho texelu podél delší strany čtyřúhelníka se průměruje zobrazovaný pixel přístup do MIP-mapy

Součtové tabulky X = A + B C - D B C A, B, C, D... levé horní součty D X A pro rychlé počítání součtu (a tedy i průměru) libovolného obdélníka předem se připraví součty všech obdélníků začínajících v levém horním rohu textury je potřeba větší přesnost (minimálně 24 bitů místo 8)

Efekt textury přímá modifikace barvy, modulace barvy skládání několika barev (detaily, vyšší variace, šum,..) různé operace (viz Multitexturing ), RGB i α efekt obtisku ( decal ) aplikace poloprůhledného obtisku na povrch tělesa viz výše: billboards, imposters hrbolatý povrch ( bump mapping ) modifikace normálového vektoru texturou modifikace materiálu efektu je dosaženo např. násobením dané složky světla skalární texturou ( Luminance formát)

Efekt textury II nanášení světla ( light mapping ) nebo stínu ( shadow mapping ) předem spočítané světlo nebo stín se aplikuje texturou násobení difusní složky světla texturou lesklý odraz okolí ( environment mapping EM) napodobení ideálního lesklého odrazu okolní scény GPU musí umět počítat odražený paprsek a adresovat texturu směrovým vektorem EM slouží k implementaci dalších efektů: lesklá složka osvětlení (specular reflection S ) bump-mapping pomocí EM (obě techniky se spojí)

Bump-mapping speciální texturovací technika vytváří dojem nerovného povrchu nahrazuje velmi komplikovanou mikro-geometrii modifikace (modulace) normálového vektoru pozorovatel získává většinu informace o struktuře povrchu těles ze stínování (odlesků) implementace předpokládá spolupráci rasterizačního hardware modulace normály texturou, multitexturing lepší je počítat složky osvětlení přímo v jednotlivých pixelech spolupráce s Phongovým stínováním

Situace zadání: diferenční funkce b(s,t) definující odchylku simulovaného povrchu od jeho jednodušší aproximace odchýlená normála N' N původní normála S T b(s,t)

Výpočet odchýlené normály simulovaný bod na povrchu hrbolatého tělesa P ' s, t = P s,t b s,t N N odchýlení normálového vektoru N ' = N b s s,t S b t s,t T N v podstatě je potřeba znát pouze parciální derivace funkce b(s,t) a ne její hodnotu...

Další texturovací techniky co může být ještě definičním oborem textury? 3D souřadnice [ x, y, z ] tzv. prostorová textura vnitřní struktura materiálu (dřevo, mramor,...) normálový vektor N veličina závislá na normále (statické difusní osvětlení) vektor odrazu R environment mapping předem spočítaná data (CPU i spolupráce s GPU) se do rasterizátoru předávají pomocí zvláštní textury odraz okolní scény na lesklém povrchu tělesa mapa osvětlení (dopředu spočítané světlo od více zdrojů, od plošných zdrojů, složitějším světelným modelem,...)

Environment-mapping (EM) vektor odrazu R se převádí do sférických souřadnic složitější příprava dat šesti čtvercových stěn krychle cubic mapping obloha plášť krychle ze šesti čtvercových textur okolí (čtyři světové strany) podlaha

Cubic mapping Greene, 1986 jednodušší než dosud používané sférické mapování textura je uložena v 6 čtvercových bitmapách POSITIVE_X, NEGATIVE_X, POSITIVE_Y, snadné pořízení dat možnost dynamické syntézy přímo na GPU snadné adresování bitmap, není potřeba normalizace vektoru, jenom dělení: 1. výběr složky s maximální absolutní hodnotou plocha 2. výpočet souřadnic ve čtverci (dělení zbývajících složek tou maximální)

Cubic mapping POSITIVE_Y [ s, 1.0, t ] s = x/y, t = z/y N [ 1.0, s, t ] s = y/x, t = z/x POSITIVE_X

Další typy směrového mapování sphere mapping (Miller, Hoffman: 1984) přímá implementace odrazu světla na perfektní kouli ( light probe ) data jsou v jediné textuře, ale nedají se použít z jiných směrů (zkreslení na okraji) paraboloid mapping (Heidrich, Seidel: 1998) dva snímky z přesně opačných směrů bez zkreslení na okrajích, dobré využití paměti rovnoměrnější vzorkování prostorového úhlu implementace: perspektivní projekce texturovacích souř.

Sphere mapping N R y 1 R = E 2 N E N m = R x 2 R y 2 R z 1 2 E [0,0,1] u = R x 2m 0.5 z 1 v v = R y 2m 0.5-1 Potřebuje projektivní texturovou transformaci

Paraboloid mapping R y R = E 2 N E N E [0,0,1] u = R x 2 1 R z 0.5 z v v = R y 2 1 R z 0.5 Potřebuje projektivní texturovou transformaci

Environment map bump-mapping sférické i kubické mapování umí dělat současné GPU v texturových souřadnicích environment-mapy lze dělat elegantně též bump-mapping místo změny normály se modifikuje [ s, t ] pro EM také tuto techniku umí dnešní rasterizační jednotky N R [s+ds,t+dt] [ds,dt]

Literatura Tomas Akenine-Möller, Eric Haines: Real-time rendering, 2 nd edition, A K Peters, 2002, ISBN: 1568811829 OpenGL ARB: OpenGL Programming Guide, 4 th edition, Addison Wesley, 2004, ISBN: 0321173481 J. Žára, B. Beneš, J. Sochor, P. Felkel: Moderní počítačová grafika, 2. vydání, Computer Press, 2005, ISBN: 8025104540