Textury a šumové funkce

Podobné dokumenty
Deformace rastrových obrázků

Rekurzivní sledování paprsku

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

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

Anti-aliasing a vzorkovací metody

Distribuované sledování paprsku

1. Vlastnosti diskretních a číslicových metod zpracování signálů... 15

Transformace obrazu Josef Pelikán KSVI MFF UK Praha

Reprezentace bodu, zobrazení

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

Watkinsův algoritmus řádkového rozkladu

Radiometrie, radiační metody

Úvod do zpracování signálů

KŘIVKY A PLOCHY. Obrázky (popř. slajdy) převzaty od

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

- obvyklejší, výpočetně dražší - každé písmeno je definováno jako zakřivený nebo polygonální obrys

Lineární transformace

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

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

Visualizace objemových dat

Josef Pelikán, 1 / 51

Anti Aliasing. Ondřej Burkert. atrey.karlin.mff.cuni.cz/~ondra/ ~ondra/stranka

Monochromatické zobrazování

Kompresní metody první generace

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

Omezení barevného prostoru

MĚŘENÍ A ANALÝZA ELEKTROAKUSTICKÝCH SOUSTAV NA MODELECH. Petr Kopecký ČVUT, Fakulta elektrotechnická, Katedra Radioelektroniky

Zobrazování vektorových polí

Jana Dannhoferová Ústav informatiky, PEF MZLU

Náhodné rozmisťování bodů v rovině

13 Barvy a úpravy rastrového

Visualizace objemových dat

Kombinatorická minimalizace

Obsah A ROVINNÁ GRAFIKA 17

Matematický ústav UK Matematicko-fyzikální fakulta

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

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

Aproximace funkcí. x je systém m 1 jednoduchých, LN a dostatečně hladkých funkcí. x c m. g 1. g m. a 1. x a 2. x 2 a k. x k b 1. x b 2.

Malířův algoritmus Josef Pelikán CGG MFF UK Praha. 1 / 15

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

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

SEMESTRÁLNÍ PRÁCE X. Aproximace křivek Numerické vyhlazování

FOURIEROVA ANAL YZA 2D TER ENN ICH DAT Karel Segeth

Plochy počítačové grafiky II. Interpolační plochy Bezierovy pláty nad obdélníkovou a trojúhelníkovou sítí Recionální Bezierovy pláty B-spline NURBS

Zobrazování barev Josef Pelikán CGG MFF UK Praha.

Kristýna Bémová. 13. prosince 2007

Aplikace multifraktální geometrie na finančních trzích

Geometrické transformace

Flexibilita jednoduché naprogramování a přeprogramování řídícího systému

Matematický ústav UK Matematicko-fyzikální fakulta

Spojitý šum v praxi. Jan Gehr

Úpravy rastrového obrazu

9. přednáška z předmětu GIS1 Digitální model reliéfu a odvozené povrchy. Vyučující: Ing. Jan Pacina, Ph.D.

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

Časové řady, typy trendových funkcí a odhady trendů

SIGNÁLY A LINEÁRNÍ SYSTÉMY

Časové řady, typy trendových funkcí a odhady trendů

Reprezentace 3D scény

Interpolace pomocí splajnu

KTE/TEVS - Rychlá Fourierova transformace. Pavel Karban. Katedra teoretické elektrotechniky Fakulta elektrotechnická Západočeská univerzita v Plzni

Monte Carlo. Simulační metoda založená na užití stochastických procesů a generace náhodných čísel.

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

Geometrické transformace obrazu

SIGNÁLY A LINEÁRNÍ SYSTÉMY

Fouriérova transformace, konvoluce, dekonvoluce, Fouriérovské integrály

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

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

5 Algoritmy vyplňování 2D oblastí

Direct Digital Synthesis (DDS)

Detekce kolizí v 3D Josef Pelikán KSVI MFF UK Praha

Křivky a plochy technické praxe

Světlo jako elektromagnetické záření

Interpolace Lagrangeovy polynomy. 29. října 2012

POČÍTAČOVÁ GRAFIKA - PGR PROGRAM PŘEDNÁŠEK. Po 9:00-10:30, KN:A-214

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

STANOVENÍ SPOLEHLIVOSTI GEOTECHNICKÝCH KONSTRUKCÍ. J. Pruška, T. Parák

Digitalizace převod AS DS (analogový diskrétní signál )

FP - SEMINÁŘ Z NUMERICKÉ MATEMATIKY. Katedra matematiky a didaktiky matematiky Technická univerzita v Liberci

Katedra geotechniky a podzemního stavitelství

Aproximace funkcí. Numerické metody 6. května FJFI ČVUT v Praze

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

P7: Základy zpracování signálu

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ě

2010 Josef Pelikán, CGG MFF UK Praha

ADA Semestrální práce. Harmonické modelování signálů

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

Jana Dannhoferová Ústav informatiky, PEF MZLU

Rekonstrukce izoploch

Aproximační křivky. Trocha historie. geometrické modelování veliký pokrok v oblasti letectví 1944 Roy Liming

GIS Geografické informační systémy

Jasové transformace. Karel Horák. Rozvrh přednášky:

2. Mřížky / Záplavové vyplňování

GIS Geografické informační systémy

Barevné systémy Josef Pelikán CGG MFF UK Praha

Institut teoretické informatiky (ITI) na FI MU

Zpracování digitalizovaného obrazu (ZDO) - Segmentace II

Terestrické 3D skenování

Počítačová dynamika tekutin (CFD) Turbulence

základní vlastnosti, používané struktury návrhové prostředky MATLAB problém kvantování koeficientů

Transkript:

Textury a šumové funkce 1998-2016 Josef Pelikán CGG MFF UK Praha pepca@cgg.mff.cuni.cz http://cgg.mff.cuni.cz/~pepca/ Textures 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 1 / 28

Účinek textury modulace barvy na povrchu předmětů změna parametrů světelného modelu např. odrazivost (k D a k S ),... modifikace normálového vektoru bump-texture nahrazení složité (mikro)geometrie napodobení komplikovaných přírodních jevů náhodné textury (užití syntézy šumu) fraktální textury (deterministické i stochastické) Textures 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 2 / 28

2D textura u v pokrývá povrch tělesa (jako tapeta) mapování textury: [x,y,z] [u,v] inverzní mapovací funkce vlastní textura: [u,v] barva (normála,..) Textures 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 3 / 28

3D textura zachycuje změny veličin uvnitř tělesa napodobuje vnitřní strukturu materiálu (dřevo, mramor,...) není třeba počítat inverzní mapování 3D textura: [x,y,z] barva (odrazivost, atd.) pro napodobení přírodních jevů se využívají tzv. šumové funkce pseudonáhodné spojité vrásnění Textures 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 4 / 28

Implementace textury předem připravené pole dat (tabulka, bitmapa) především u 2D textur skutečná (přírodní) data, obrázky, etikety pro větší kvalitu (spojitost) - různé typy interpolace textury definované algoritmem (předpisem) jednoduché geometrické tvary fraktály, stochastické funkce (šum, turbulence) smíšené metody (předem spočítaná tabulka) náročné modelovací metody (reakční difuze,..) Textures 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 5 / 28

Textura definovaná tabulkou x y u v Textures 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 6 / 28

Typy interpolace bez interpolace (zaokrouhlení) nejjednodušší a nejrychlejší metoda pokud se rozlišení obrázku blíží rozlišení textury, vznikají výrazné a nepříjemné artefakty (Doom) bilineární interpolace zajišťuje spojitost obrazové funkce (C 0 ) polynomiální interpolace (např. spline funkce) spojitost vyšších řádů (u bikubické až C 2 ) výpočetně náročná (kombinace 9-16 hodnot ve 2D) Textures 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 7 / 28

Bilineární a bikubická interpolace a f 10 f 11 f 00 b f 01 f(a,b) 1 f a, b a b f b f 11 10 1 1 a b f b f 01 00 f 30 f 31 f 32 f 33, f a b 3 i, j 0 C a C b f i j ij C i (t).. kubické polynomy f 20 f 10 a f 21 f 22 f(a,b) f 11 b f 12 f 23 f 13 f 00 f 01 f 02 f 03 Textures 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 8 / 28

Kubická B-spline interpolace 3, f a b 3 i 0 B-spline váhové funkce: C t i 1 i 0 3 j 0 C a C b f i j ij C t 1 1 t 0 1 3 2 3 6 4 C t t t 1 1 3 2 3 3 3 1 C t t t t 2 C t 1 t 3 0 C t 1 pro 0 t 1 i 6 6 6 6 3 3 Textures 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 9 / 28

Algoritmické a smíšené textury jednoduché geometrické tvary, vzorky šachovnice, pravidelné pruhy,.. napodobení přírodních tvarů často se využívají pseudonáhodné algoritmy (syntéza spojité šumové funkce) fraktály, turbulence (mraky, špína,..) reakční difuze (napodobení kůže a srsti zvířat) prostorové náhodné textury (dřevo, mramor,..) Textures 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 10 / 28

Modulace normály ( bump map ) U N V N B(u,v) N = U V P (u,v) = P(u,v) + B(u,v) N / N napodobení nerovností na povrchu tělesa B(u,v) je funkce lokálního posunutí povrchu: + ven z tělesa, dovnitř tělesa Textures 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 11 / 28

Modulace normály Původní normála: N U V posunutý bod:, P u, v P u v B u, v N N aproximace modifikované normály: N N B u u, v N V B u, v N U N v Textures 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 12 / 28

Syntéza šumu cílem je subjektivně nahodilý vzhled (tvar) napodobení komplikovaných přírodních jevů výsledek působení chaotického systému, náhodné difuse, systému s částečnou zpětnou vazbou,.. výpočet hodnoty šumové funkce v konkrétním bodě musí být deterministický (opakovatelný) paralelní implementace, opakovaný dotaz požadovaná spektrální charakteristika šumu nekorelovaný/bílý šum, spojitý šum Textures 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 13 / 28

Bílý šum šum s neomezeným spektrem hodnoty v různých bodech mají nulovou korelaci příklad implementace 2D bílého šumu: double RandomTab[RANDOMTABLEN]; int Indx[ILEN], Indy[ILEN]; // random values // random permutations double white_noise_2d ( double x, double y ) { int i = HASH( Indx[LOWBITS(x)], Indy[LOWBITS(y)] ); return( RandomTab[ i % RANDOMTABLEN ] ); } využívá k bitů mantisy LOWBITS, hashovací funkci HASH RandomTab, Indx, Indy jsou předem spočítané tabulky Textures 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 14 / 28

Spojitý šum spojitá funkce s omezeným spektrem stacionární, izotropní (invarian. na posunutí, otočení) krátká perioda funkce může být na závadu Fourierovská syntéza přesně mohu ovlivňovat frekvenční charakteristiku interpolace náhodných hodnot v mřížce klasická interpolace (např. pomocí B-spline funkcí) Hermitovská interpolace - gradienty (Perlin) stochastická mřížka - řídká konvoluce (Lewis) Textures 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 15 / 28

Interpolace v pravidelné mřížce předem vygeneruji síť pseudonáhodných čísel (vektorů, směrnic,..) požadované rozdělení pravděpodobnosti 1D, 2D nebo 3D topologie ve vícerozměrných případech mohu ušetřit paměť pomocí hašovací funkce HASH(x,y,z) - viz výše interpolace v neuzlových bodech separabilní metody (složky počítám postupně) nejčastěji kvadratické nebo kubické polynomy 2D: 4 až 16 uzlů, 3D: 8 až 64 uzlů Textures 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 16 / 28

Metoda Kena Perlina (3D šum) spektrum je omezené na jednu oktávu (f 2f) efektivní implementace předem vygeneruji síť pseudonáhodných gradientních vektorů [a,b,c,d] ijk [a,b,c] ijk je pseudonáhodný jednotkový směr (vybírám a normalizuji pouze náhodné vektory kratší než 1) d ijk je hodnota funkce v uzlovém bodě [x i,y j,z k ] přepočítám d ijk = d ijk - a ijk x i - b ijk y j - c ijk z k Textures 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 17 / 28

Metoda Kena Perlina hodnoty v uzlech: K ijk (x,y,z) = d ijk + a ijk x + b ijk y + c ijk z interpolační kubické spline polynomy: w(t) = 2 t 3-3t 2 + 1 pro t < 1 w(t) = 0 jinde nosič má poloměr 1 potřebuji pouze 2 D uzlů x a x, y, z w x i w y j w z k a i 1 x y j 1 y z k 1 z ijk Textures 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 18 / 28

Metoda řídké konvoluce (Lewis) možnost řízení spektrální charakteristiky efektivní implementace konvoluce 3D filtru h(x,y,z) s Poissonovým šumem :,,,,,, n x y z u v w h x u y v z w dudv dw 3 x, y, z a x x, y y, z z k k k k k Textures 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 19 / 28

Konvoluce Poissonova šumu 1 nosič filtru h náhodná poloha: [x k,y k,z k ] náhodná váha: a k filtr h 0 r Textures 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 20 / 28

Metoda řídké konvoluce Díky diskrétnímu charakteru Poissonova šumu: n x y z a h x x y y z z,,,, k k k k k hustotou impulsů [x k,y k,z k ] mohu řídit kvalitu šumu při 10 a více impulsech na plochu filtru h je kvalita téměř nerozeznatelná od interpolačního šumu při stejné kvalitě je řídká konvoluce efektivnější Textures 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 21 / 28

Efektivní implementace prostor rozdělím na krychlové buňky se stranou délky r (poloměr filtru h - obvykle 1) v každé buňce generuji impulsy nezávisle pomocí pseudonáhodného generátoru s počáteční hodnotou semínka Seed ijk hodnoty Seed ijk nageneruji předem nějakým jiným (nezávislým) generátorem nebo mohu pro úsporu paměti (a proti opakování vzorku) použít hašovací funkci HASH(x,y,z) Textures 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 22 / 28

Efektivní implementace při výpočtu hodnoty Noise(x,y,z) stačí projít pouze několik sousedních buněk v 2D případě je to 4 9 buněk v 3D případě je to 8 27 buněk pro izotropní šum (symetrický filtr h) mohu předem spočítat hodnoty h(r 2 ) do tabulky při výpočtu konvoluce nemusím odmocňovat Textures 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 23 / 28

Kombinace šumových funkcí složení několika frekvencí f i s amplitudami a i posunutých o vektory [x i,y i,z i ]:,, i napodobení turbulence: f i = F i, a i = A -i a Noise f x x f y y f z z i i i i i i i 1 A Noise F i x x F i i i y y F i, i, z z i i Textures 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 24 / 28

Aplikace šumových funkcí náhodné modifikace normály ( bump map ) iluze nepravidelně zvrásněného povrchu těles pomerančová kůra turbulence mlha, mraky, použití v modelování 3D textury vnitřní struktura materiálu dřevo, mramor,.. Textures 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 25 / 28

Simulace struktury dřeva [x,y,z] barva B(r) ideální osa kmene D(x,y,z),, Noise x, y, z B D x y z r B D x, y, z Noise x, y, z Noise x, y, z 1 1 2 Textures 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 26 / 28

Simulace struktury mramoru [x,y,z] D(x,y,z) barva B(r) ideální rovina (geolog. vrstva) r,, Noise x, y, z B D x y z Turb Textures 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 27 / 28

Literatura K. Perlin: An Image Synthesizer, Computer Graphics, Vol. 19, #3, July 1985, 287-296 K. Perlin, E. M. Hoffert: Hypertexture, Computer Graphics, Vol. 23, #3, July 1989, 253-262 J. P. Lewis: Algorithms for Solid Noise Synthesis, Computer Graphics, Vol. 23, #3, July 1989, 263-270 J. Foley, A. van Dam, S. Feiner, J. Hughes: Computer Graphics, Principles and Practice, 741-745, 1015-1018, 1043-1047 Textures 2016 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 28 / 28