Textúry
Motivácia Bez textúr by nám vo filmoch behali len polygonálne modely Bez textúr by bol Quake len grafika s holými stenami
Niektoré zdroje Prednášky: Seidel 02: www.mpi-sb.mpg.de/units/ag4/teaching/uebung/ Knihy: Tomas Akenine-Moeller, Eric Haines: Realtime Rendering, 2nd edition, AK Peters 2002 D.S. Ebert et al: Texturing and Modeling, 1994, 1998 Web: www.opengl.org www.gamedev.net www.nvidia.com
História textúr Catmull/Williams 74: základné myšlienky Blinn a Newell 76: reflection maps Blinn 78: bump mapping Williams 78: shadow maps Smith 80, Heckbert 83: texturing polygons Williams 83: mipmaps Miller/Hoffman 84: illumination/reflectance maps Perlin/Peachey 85: 3D textúry Green 86: environment maps Reeves 87: improved shadow maps
Definície pojmov Rôzne zdroje používajú rôzne definície Textúrny priestor (texture space/domain) Mapovanie textúr: textúrny priestor priestor objektu Shader Vstup: (x,y,z), (u,v) súradnice objektu, textúry Výstup: farba,...
Textúry Príklady dimenzie textúr textúra je diskrétny zoskenovaný (vytvorený) obraz dimenzia je určená podľa toho čo určuje Podľa dimenzie priestoru v doméne : 1D Parameter úsečky, výška, teplota,... 2D Súradnice bodu plochy (u, v), smer (θ, φ),... 3D Bod v priestore (x, y, z), smer v priestore,... 4D Dvojrovinová reprezentácia svetelného poľa Podľa dimenzie priestoru v obraze: 1D hodnota odrazu (kd), intenzita/jas 2D Intenzita a priesvitnosť 3D Farba bodu (r, g, b), normála, vektor odrazu 4D Farba a priesvitnosť bodu (r, g, b, α)
Premietanie textúr 2D textúra 3D objekt (najviac riešené) 3D textúra 3D objekt iné
Zobrazovanie 2D textúr na 3D objekty (u,v) parametrizácia textúrneho priestoru Zobrazenie (projekcia) vs. inverzné zobrazenie
Sférická projekcia príklad x(, ) = sin sin 0 /2 y(, ) = cos z(, ) = cos sin /4 /2 u=0, v=0 =0, = /2 u=1, v=0 = /2, = /2 u=0, v=1 =0, = /4 u=1, v=1 = /2, = /4 y =arctan ( ) x =arccos ( u= z x2 + y2 + y /2 ) v=2 2 /4
Dvojfázová projekcia (zobrazenie) Projekcia = S mapovanie, O mapovanie (u,v) Texture space S (xi,yi) Intermediate space Jednoduché projekcie: O Planárna projekcia Kubická projekcia Sférická projekcia Cylindrická projekcia (xo,yo,zo) Object space
Cylindrická projekcia S mapovanie θ θ A z z A s= t= θ B θ A z B z A
Cylindrická projekcia O mapovanie Niekoľko spôsobov: najbežnejšie je kolmé premietanie
Čo všetko dokážu textúry?
Taxonómia textúr 2D textúry modulujú povrch objektu Heckbert 86: Čo môžu modulovať? Farbu (color textures) Normálu (bump maps) Lesklosť (reflectance textures ) Priehľadnosť (transparency textures) Geometriu (displacement textures)
Farebné textúry príklad 1
Farebné textúry príklad 2
Hrboľaté textúry príklad
Textúry lesklosti príklad kovový lesk
Textúry priehľadnosti príklad
Displacement textures príklad
Kombinované textúry príklad camouflage
3D textúry príklad solid cubes
Mipmapping MIP = Multum In Parvo (mnoho v malom) 1983: urýchľovanie zobrazovania textúr Pyramída s (u,v,d) adresáciou Dnes: používaná na antialiasing textúr
Environment Mapping Ako textúru vezmime okolité prostredie Ako získať takúto textúru? Blinn & Newell 76: latitude/longitude method
Cubic Environment Mapping Gene 1986 Okolité prostredie sa zobrazuje na 6 stien kocky Najviac používaná (napr. nvidia Geforce 256)
Sphere Environment Mapping Okolie je zobrazené na guľu
Paraboloid Environment Mapping 1 x 1 + 2 b 1 z 2 Zadná: 1 y 1 v= + 2 b 1 z 2 u= 1 2b Predná: 1 v= 2b u= x 1 + 1+ z 2 y 1 + 1+ z 2
Hrboľaté textúry Bump Mapping = Modulácia normály Techniky: Emboss bump mapping Dot product bump mapping (DirectX) Diffuse and specular bump mapping (nvidia Geforce 256)
Ako získať textúru? Použiť predpripravené dáta Upraviť predpripravené dáta Vytvoriť textúru procedurálne
Procedurálne textúry
Softvér Nástroje pre tvorbu textúr DartkTree: www.darksim.com Texture Maker: www.texturemaker.com Shader Pluginy/Skripty pre renderovací softvér 3D Studio truespace custom shaders Shading Languages pre softvér: Renderman Shading Language (BMRT) pre hardvér: 3D API languages (DirectX / OpenGL)
Metódy tvorby textúr Každá rastrová (2D, 3D, 4D) procedurálna modelovacia technika Explicitné funkcie Fraktály Šumy, turbulencie Reakčná difúzia
Tvorba textúry pomocou Voronoiových buniek 1. Náhodne vygenerovať n bodov 2. Vizualizovať vzdialenosť k najbližšiemu susedovi Výsledok = Voronoiov šum
Modifikácie metódy najbližšieho suseda Zovšeobecnenie: i-ty najbližší sused tretí najbližší sused
Súčet vzdialeností 1. najbližší plus 2. najbližší sused
Rozdiel vzdialeností 2. najbližší mínus 1. najbližší sused
Kombinácia najbližšieho a najvzdialenejšieho 3. najbližší plus 3. najvzdialenejší
3D Textúry: Hypertextúry Perlin 1989 3D funkcia hustoty d(x) <0,1) Fuzzy objekty oblaky Srsť, vlasy, plyn, oheň, dym Komplexné objekty tkaniny minerály Použitie šumu
Hypertextúry
Perlinová hypertextúra
Fuzzy hypertextúry
Hypertextúry dymu
Hypertextúry ohňa
Hypertextúry srsti, vlasov
Hypertextúry tkaniny
Niektoré zdroje Knihy: Tomas Akenine-Moeller, Eric Haines: Realtime Rendering, 2nd edition, AK Peters 2002 D.S. Ebert et al: Texturing and Modeling, 1994, 1998 Web: www.opengl.org www.gamedev.net www.nvidia.com Prednášky: Seidel 02: www.mpi-sb.mpg.de/units/ag4/teaching/uebung/