Textúrák. Szécsi László

Hasonló dokumentumok
HLSL programozás. Grafikus játékok fejlesztése Szécsi László t06-hlsl

Árnyalás, env mapping. Szécsi László 3D Grafikus Rendszerek 3. labor

HLSL programozás. Szécsi László

Plakátok, részecskerendszerek. Szécsi László

Direct3D pipeline. Grafikus játékok fejlesztése Szécsi László t03-pipeline

Valasek Gábor

Grafikus csővezeték és az OpenGL függvénykönyvtár

1. Bevezetés 1. Köszönetnyilvánítás A számítógépes játékfejlesztésről 3

Számítógépes Graka - 4. Gyak

2D képszintézis. Szirmay-Kalos László

x = cos αx sin αy y = sin αx + cos αy 2. Mi a X/Y/Z tengely körüli forgatás transzformációs mátrixa 3D-ben?

Transzformációk. Grafikus játékok fejlesztése Szécsi László t05-transform

Transzformációk. Szécsi László

A bemutatott példa a Phong modell egy egyszerűsített változatát alkalmazza a Blinn-Phong-féle megközelítést

Geometriai modellezés. Szécsi László

Információ megjelenítés Számítógépes ábrázolás. Dr. Iványi Péter

GPU Lab. 14. fejezet. OpenCL textúra használat. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc

2. Generáció ( ) 3. Generáció (2001) NVIDIA TNT2, ATI Rage, 3dfx Voodoo3. Klár Gergely

Véletlen szám generálás Labirintus felépítése 1x1-es felbontástól a teljes méretig

Számítógépes Grafika mintafeladatok

Láthatósági kérdések

OpenGL Compute Shader-ek. Valasek Gábor

Farkas Gyula Szakkollégium Bit- és számtologatók. DirectX9 1. Szín, fény, textúra 2. Stencil buffer használata (tükörkép, hamis árnyék)

Bevezetés a CGI-be. 1. Történelem

Hajder Levente 2016/2017.

Információ megjelenítés Számítógépes ábrázolás. Dr. Iványi Péter

Hajder Levente 2017/2018. II. félév

Tartalom. Tartalom. Anyagok Fényforrás modellek. Hajder Levente Fényvisszaverési modellek. Színmodellek. 2017/2018. II.

Tartalom. Hajder Levente 2016/2017. I. félév

Maga a tématerület így nagyon nagy. A fények pontos fizikai szimulációja kimondottan számításigényes

Klár Gergely 2010/2011. tavaszi félév

Realisztikus színtér 1 / 59

Tanács Attila. Képfeldolgozás és Számítógépes Grafika Tanszék Szegedi Tudományegyetem

Grafikus csővezeték 2 / 77

SZE, Doktori Iskola. Számítógépes grafikai algoritmusok. Összeállította: Dr. Gáspár Csaba. Felületmegjelenítés

Tartalom. Tartalom. Hajder Levente 2018/2019. I. félév

Fourier térbeli analízis, inverz probléma. Orvosi képdiagnosztika 5-7. ea ősz

3D - geometriai modellezés, alakzatrekonstrukció, nyomtatás

Grafikus csővezeték 1 / 44

A számítógépes grafika alapjai kurzus, vizsgatételek és tankönyvi referenciák 2014

Diszkréten mintavételezett függvények

D3D, DXUT primer. Grafikus játékok fejlesztése Szécsi László t01-system

Klár Gergely 2010/2011. tavaszi félév

3D - geometriai modellezés, alakzatrekonstrukció, nyomtatás

Modellezési transzformáció: [r lokális,1] T M = [r világ,1] Nézeti transzformáció: [r világ,1] T v = [r képernyo,1]

KÉPFELDOLGOZÁS A DIRECTX 9 MAGAS SZINTŰ ÁRNYALÓ NYELVÉNEK SEGÍTSÉGÉVEL

A számítógépes grafika inkrementális képszintézis algoritmusának hardver realizációja Teljesítménykövetelmények:

Direct3D interface. Grafikus játékok fejlesztése Szécsi László t04-pipecontrol

Számítógépes Grafika mintafeladatok

Tartalomjegyzék. Köszönetnyilvánítás... xv. Előszó... xvii. 1. Bevezető D-történelem Matematikai alapok... 7

SDL_Universe SDL, C++, 3D szoftver renderelő

Eddig csak a polinom x-ben felvett értékét kerestük

Mesh generálás. IványiPéter

Vektorgeometria (2) First Prev Next Last Go Back Full Screen Close Quit

3D-s számítógépes geometria és alakzatrekonstrukció

A játékfejlesztés több területből áll. A kódolás csupán egy része a munkáknak.

Lineáris algebra. (közgazdászoknak)

Lineáris algebra zárthelyi dolgozat javítókulcs, Informatika I márc.11. A csoport

Kép mátrix. Feladat: Pap Gáborné-Zsakó László: Algoritmizálás, adatmodellezés 2/35

7. Régió alapú szegmentálás

Híradástechikai jelfeldolgozás

3D - geometriai modellezés, alakzatrekonstrukció, nyomtatás

Számítógépes grafika

Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)

3D Számítógépes Geometria II.

1.4 fejezet. RGB színrendszerek

Fraktálok és káosz. Szirmay-Kalos László

INFORMATIKA javítókulcs 2016

3D számítógépes geometria és alakzatrekonstrukció

openbve objektumkészítés Leírás az objektumkészítéshez használható parancsokról

Hozzárendelés, lineáris függvény

Google Summer of Code OpenCL image support for the r600g driver

1. Házi feladat. Határidő: I. Legyen f : R R, f(x) = x 2, valamint. d : R + 0 R+ 0

Tartalom. Tartalom. Hajder Levente Szakasz raszterizálása. 2017/2018. II. félév. Poligon raszterizáció.

A 3D-2D leképezés alatt melyek maradnak robusztus képjellemzők?

Mintavételes szabályozás mikrovezérlő segítségével

1. Képalkotás. Kató Zoltán. Képfeldolgozás és Számítógépes Grafika tanszék SZTE (

Diszkrét matematika II. feladatok

016 - Bonyolultabb objektumok kiterítése és textúrázásra előkészítése

Számítógépes Grafika SZIE YMÉK

Algoritmusok raszteres grafikához

Wavelet transzformáció

Mesh from file, OrthoCamera, PerspectiveCamera. Szécsi László 3D Grafikus Rendszerek 3. labor

I. feladatsor. 9x x x 2 6x x 9x. 12x 9x2 3. 9x 2 + x. x(x + 3) 50 (d) f(x) = 8x + 4 x(x 2 25)

Mutatók és címek (ism.) Programozás alapjai C nyelv 8. gyakorlat. Indirekció (ism) Néhány dolog érthetőbb (ism.) Változók a memóriában

Transzformációk síkon, térben


Hajder Levente 2018/2019. II. félév

Geometria brute force tárolása

Kereső algoritmusok a diszkrét optimalizálás problémájához

Hajder Levente 2014/2015. tavaszi félév

Felületek differenciálgeometriai vizsgálata

Eredmények, objektumok grafikus megjelenítése 3D felületek rajzoló függvényei.. Beépített 3D felületek rajzoló függvényei

Számítógépes geometria (mester kurzus)

Párhuzamos és Grid rendszerek

2014. szeptember 24. és 26. Dr. Vincze Szilvia

C programozás. 6 óra Függvények, függvényszerű makrók, globális és

Véletlenszám generátorok és tesztelésük. Tossenberger Tamás

Használati Útmutató. KeyShot alapok

Lemezalkatrész modellezés. SolidEdge. alkatrészen

Átírás:

Textúrák Szécsi László

Textúra interpretációk kép a memóriában ugyanolyan mint a frame buffer pixel helyett texel adatok tömbje 1D, 2D, 3D tömb pl. RGB rekordok függvény diszkrét mintapontjai rácson rekonstrukció: szűrés függvény a 3D felületi pontok felett? R G B R G B R G B R G B R G B R G B

Textúra formátum egy texel hány bit, hogyan elosztva pl. D3DFMT_R5G6B5 3 csatornás, 16 bites lehet floating point pl. D3DFMT_A32B32G32R32F 16 byte/texel! depth-stencil buffer is lehet textúra D3DFMT_D24S8 depth stencil

Textúra leképezés 3D felületi pont 2D textúratérbeli pont u = T(x) tetszőleges f(x) tárolható textúrában f(x) = f(u) = f(t(x)) megkeressük a pont textúrakoordinátáját értéket kiolvassuk a textúra megfelelő texeléből árnyaláshoz a felületi jellemzőket tárolhatjuk BRDF paraméterek: kd, ks, shininess, kr normálvektor: bump map, normal map

Textúra leképezés T(x) legyen könnyen számítható csúcsokban adott modellezéskor u,v koordinátákat rendelünk a vertexekhez háromszögeken interpoláljuk a felületen NEM a képernyőn

Perspektív helyes interpoláció ha a világban lineáris, akkor a képernyőn nem textúráknál látszik persp. helyes textúrázás de ma már mélység szín

Modellezés textúrákkal UV koordináták hozzárendelése 2D festés 2D-ben az élek megrajzolása (szabásminta) rajzolóprogrammal 2D-ben 3D festés 3D modellen kijelölt pont felület textúratér részletes geometriai modell alapján egyszerű modell + részletek textúrában

Textúrázás Mayában (0,0) (1,1)

Textúrázás Mayában

UV atlas általában megengedett, hogy több felületi ponthoz ugyanaz a textúrakoordináta tartozzon model bal és jobb oldala nem kell kétszer de 3D festés (máshol ne legyen változás csak ahova festek) számított textúra (pl. light map)

UV atlas = átfedés nélküli kiterítés

Textúrák szűrése texel > pixel (közeli felület) texel-értékek egy folytonos függvény mintapontjai nearest a legközelebbi texel értékét használjuk bilineáris 4 legközelebbi között interpolálunk elkeni a texel-éleket a felületen

Textúrák szűrése texel < pixel (távoli felület) egy pixelbe sok texel esik, átlagolni kellene ha a pixelközép textúrakooriniátájához legközelebbit vesszük, akkor gyakorlatilag véletlenül választunk egy texelt az átlag helyett kameramozgásnál változik, melyiket megoldás átlagok előre kiszámolása: mipmappek

Mipmap u, v, m trilineáris szűrés u,v két szinten kettő között interpolálás

Példa: diffuse map (k d ) IDirect3DTexture9 interface létrehozás fileból: D3DXCreateTextureFromFile( device, texturefilepath, &texture);

Textúra effect fileban texture kdmap; sampler2d kdmapsampler = sampler_state{ texture = < kdmap >; MinFilter = LINEAR; MagFilter = LINEAR; MipFilter = LINEAR; AddressU = Wrap; AddressV = Wrap; }; globális textúra változó ehhez kell kötni amit betöltöttünk textúrázási állapotleíró egy textúrához több is lehet ebből tudunk HLSL-ben olvasni

Pixel shader float3 lightradiance; float3 lightdir; irányfényforrás float4 psdiffuse(trafooutput input) : COLOR0 { } // diffúz árnyalás: I L L N k d return lightradiance * dot(input.normal, lightdir) * tex2d(kdmapsampler, input.tex);

B N T Normal map a felületi normált adjuk meg textúrában modelltérben model mátrix inverz transzponáltjával átvihető a világba tangenstérben pl. ismétlődő fakéregminta szabálytalan felületen érintősíkhoz képest

Cube map 6 db 2D textúra kocka felületén a benne vagyunk a kocka közepén minden irányt lefed irány függvényében is tudunk tárolni valamit HW: a textúra irányvektorral címezhető kiszámítja melyik lap milyen u,v

Environment map nem a felületi jellemzőket, hanem a megvilágítást tároljuk textúrában I(ω) bejövő radiancia az irány függvényében nem függ a felületi pont pozíciójától végtelen távoli környezet minden irányból jön be fény összes texelre kellene összegezni DE: ideális tükör: csak 1 irányból érdekes mi jön be

Cube map effectben texturecube environmentcubetexture; samplercube environmentcubesampler = sampler_state { texture = <environmentcubetexture>; MipFilter = Linear; MagFilter = Linear; MinFilter = Linear; };

Env map pixel shader float3 kr; //ideális visszaverődés paraméter float4 psenvmap(trafooutput input) : COLOR0 { float3 refldir = reflect( -viewdir, input.normal); return kr * texcube(envmapsampler, refldir); }

Hogyan rajzoljuk magát a környezetet nagy valamire feszítve sky box sky dome full screen quad teljes képernyőt lefedő négyszög a pixel shaderben megkeressük az irányt Z bufferelés: mindennél hátrább van ezt rajzoljuk elöször VAGY a full-screen quad Z-je legyen 0.9999 (norm. képenyőkoordinátában)

full screen quad vertex shader vsenvironmentoutput vsenvironment(vsenvironmentinput input) { vsenvironmentoutput output = (vsenvironmentoutput)0; output.pos = input.pos; // képből vissza világba float4 hworldpos = mul(viewprojinversematrix, input.pos); // homogén osztás kézzel kell hworldpos /= hworldpos.w; }; // pixel shadernek megvan a világpozíció output.worldpos = hworldpos.xyz; return output;

pixel shader float4 psenvironment(vsenvironmentoutput input) : COLOR0 { float3 viewdir = normalize(input.worldpos.xyz - eyeposition.xyz); }; return texcube(environmentcubesampler, viewdir);