Jeni László Attila Klár Gergely

Slides:



Advertisements
Hasonló előadás
Hullámmozgás.
Advertisements

A vízszintes mérések alapműveletei
A NÉGY FŐELEM Tűz,víz,levegő és föld.
Árnyalás – a felületi pontok színe A tárgyak felületi pontjainak színezése A fényviszonyok szerint.
 Árnyalási egyenlet  Saját emisszió  Adott irányú visszaverődés.
Geometriai Transzformációk
Geometriai transzformációk
Inkrementális 3D képszintézis
Geometriai modellezés
Sugárkövetés: ray-casting, ray-tracing
Geometriai modellezés
Számítógépes grafika Szirmay-Kalos László
Sugárkövetés: ray-casting, ray-tracing Szirmay-Kalos László.
3D képszintézis fizikai alapmodellje
Grafikus játékok fejlesztése Szécsi László g11-physics
Függvénytranszformációk
Transzformációk kucg.korea.ac.kr.
A virtuális technológia alapjai Dr. Horváth László Budapesti Műszaki Főiskola Neumann János Informatikai Kar, Intelligens Mérnöki Rendszerek.
Vámossy Zoltán 2004 (Mubarak Shah, Gonzales-Woods anyagai alapján)
Fizika 4. Mechanikai hullámok Hullámok.
2D képszintézis és textúrák
Fejlett grafikai algoritmusok Megvilágítási modellek
Koordináta-geometria
Számítógépes grafika 3. gyakorlat.
4.7. Textúra A felület anyagszerűsége Sík-képek ráborítása a felületre
6. A 3D grafika alapjai 6.1. A 3D szerelőszalag fölépítése
2. Koordináta-rendszerek és transzformációk
2. Koordináta-rendszerek és transzformációk
Számítógépes Grafika Programtervező informatikus (esti)‏ Textúrázás.
Számítógépes Grafika Megvilágítás Programtervező informatikus (esti)‏
2008/2009 tavasz Klár Gergely  Gyakorlatok időpontjai: ◦ Szerda 10:05–11:35 ◦ Csütörtök 10:00+ε –11:30+ε  Gyakvez: ◦ Klár Gergely ◦
Fény terjedése.
LOGO Webszolgáltatások Készítette: Kovács Zoltán IV. PTM.
-fényvisszaverődés -fénytörés -leképező eszközök
BMEEPAG0202 CAD és építészinformatika / D-3D számítógépes grafika BME Építészmérnöki Kar Építészeti Ábrázolás Tanszék Előadó: Batta Imre Árnyalások.
NEMZETI TANKÖNYVKIADÓ Panoráma sorozat
Vektorok különbsége e-x = [ex-xx ey-xy ez-xz] e e-x x szempozíció
Environment mapping Szécsi László. Új osztály: Lab3EnvMap copy&paste: Lab2Trafo.h -> Lab3EnvMap.h copy&paste: Lab2Trafo.cpp -> Lab3EnvMap.cpp copy&paste:
Sugárkövetés: ray-casting, ray-tracing
Számítógépes grafika Bevezetés
3D képszintézis fizikai alapmodellje Szirmay-Kalos László Science is either physics or stamp collecting. Rutherford.
Rendering pipeline Ogre3D
Textúrák Grafikus játékok fejlesztése Szécsi László g07-texture.
Grafikus játékok fejlesztése Szécsi László t09-texture
Budapesti Műszaki Főiskola Neumann János Informatikai Kar Informatikai Automatizált Rendszerek Konzulens: Vámossy Zoltán Projekt tagok: Marton Attila Tandari.
Árnyalás – a felületi pontok színe A tárgyak felületi pontjainak színezése A fényviszonyok szerint.
4.6. A Fénysugár-követés módszere (ray-tracing) Mi látható a képernyőn, egy-egy képpontban ? (4.4.LÁTHATÓSÁG) A képponton át a szembe jutó fénysugár melyik.
3. Vetületi ábrázolások számítási eljárásai
Számítógépes grafika DirectX 5. gyakorlat. Emlékeztető Háromdimenziós alapok befejezése Textúrázás.
Árnyalás – a felületi pontok színe A tárgyak felületi pontjainak színezése A fényviszonyok szerint.
2.2. Az egyenes és a sík egyenlete
Viszkok Bence 12.c A leképezési hibák világa
Bevezetés a számítógépi grafikába 2. Paraméteres görbék Paraméteres görbe: 2D-ben: paraméter: általában: kikötések: legyen folytonos legyen folytonosan.
Számítógépes grafika gyakorlat DirectX segítség A következő dolgokra van szükség: CG Toolkit: 
Informatikai eszközök a virtuális valóság szolgálatában Hapák József ELTE-IK X. Eötvös Konferencia.
4.6. A Fénysugár-követés módszere (ray-tracing) Mi látható a képernyőn, egy-egy képpontjában ? És az ott milyen színű ? (4.7. Árnyalás)
Számítógépes grafika gyakorlat: DirectX 2007/2008 tavasz Klár Gergely
Vizualizáció és képszintézis
Hasonlóság modul Ismétlés.
6. A 3D grafika alapjai 6.1. A 3D szerelőszalag fölépítése 6.2. Térbeli alakzatok képe 6.3. Térbeli képelemek és modell-adatszerkezetek 6.4. Képelemek.
3D grafika összefoglalás
Global Illumination.
Fizika 2i Optika I. 12. előadás.
Grafikus Rendszerek 6. Camera.
6. A 3D grafika alapjai 6.1. A 3D szerelőszalag fölépítése
6. A 3D grafika alapjai 6.1. A 3D szerelőszalag fölépítése
Bevezetés Tematika Számonkérés Irodalom
Environment mapping Szécsi László
Készítette: Porkoláb Tamás
Nagy Attila1,2, Rovó László1, Kiss József Géza1
Előadás másolata:

Jeni László Attila jedi@inf.elte.hu Klár Gergely tremere@elte.hu „Mappings” 2. Jeni László Attila jedi@inf.elte.hu Klár Gergely tremere@elte.hu

Miről lesz szó? Bump mapping, Normal mapping Displacement mapping Environment mapping

Bucka és normál leképzés Feladat: részletgazdagabbá akarunk tenni egy felületet, hogy apró egyenetlenségek is meglátszódjanak rajta, miközben a geometriát nem akarjuk megváltoztatni

Bucka és normál leképzés Tároljuk a felületi normálvektor perturbációt egy térképben. Ezeket az információkat felhasználva árnyalásnál módosítjuk a visszaverődő S vektor irányát (és ezáltal a megfigyelő által észlelt fényerő mértékét). Nem módosítunk a geometrián.

Bucka és normál leképzés Bucka térkép Normál térkép

Bucka leképzés

Bucka térkép előállítása A nagyobb tesszellációval rendelkező modell segítségével meghatározhatjuk a bucka térképeket a kisebb tesszelláltságú modellhez.

Bucka térkép előállítása Procedurális textúrák segítségével http://www.filterforge.com/ Rajzoló programmal http://nifelheim.dyndns.org/~cocidius/normalmap/ http://developer.nvidia.com/object/photoshop_dds_plugins.html

Normál térkép használata A kép RGB csatornáin XYZ értékeket tárolunk Ezek értéke [0,1] tartományban lehet De egy normálvektor koordinátái [-1, 1] között vehetnek fel értéket! NormalVector = (NormalTexture-0.5)*2

Normál térkép használata Az így kapott vektor adja az adott pontbeli normálvektor. Probléma: fontos a normál térkép sodrása! Jobbkezes térkép balkezes rendszerben hibás árnyékokat eredményez, és viszont!

Textúra és világ koordináta rendszerek A normál térképben tárolt vektorok a textúra síkjához képest adottak, azaz helyes értéket (transzformációk nélkül) csak az XY síkon fekvő, és a +Z felelő néző objektumokra adnak

Normál térképek transzformálása (Texture-Space Normal Mapping) A probléma, hogy a textúra-tér és az objektum-tér inkonzisztens egymással Egy megoldás, ha az fény számításnál használt vektorokat (directionToLight, directionToCamera) elforgatjuk a textúra-térbe. Ez csak ritkán használható megoldás, mivel az elforgatás csak objektumonként adott, de nekünk felületenként (gyak. háromszögenként) lenne rá szükségünk

Texture-Space Normal Mapping

Normál, tangens, bitangens Egy forgatási mátrix megadható a fenti három vektor segítségével Célunk, hogy a textúra-tér XY síkja a „normál leképezés alá kerülő” háromszög síkjába kerüljön Ha ismert a fenti három vektor, akkor belőlük képzett forgatási mátrix pontosan ezt a transzformációt végzi el.

Normál, tangens, bitangens vektorok számítása Ha a háromból kettő adott, akkor a harmadik számítható az alábbi képletek alapján: N általában adott Sok 3D-s program támogatja a tangens és/vagy bitanges exportálását A bitangest (tévesen) szokás néha binormálisnak is nevezni

További olvasnivalók Leírás a bucka illetve normál leképezésekről, shader kódokkal: http://http.developer.nvidia.com/CgTutorial/cg_tutorial_chapter08.html Tangens, bitangens vektorok számítása: http://www.terathon.com/code/tangent.html

Eltolás leképzés Displacement mapping A textúrázást felhasználhatjuk arra is, hogy elmozdítsuk az objektum felületi pontjait.

Előnyök, hátrányok Valóban megváltoztatja a felület geometriáját, nem csak azt az érzetet kelti Ellenpélda normál leképezésnél: Csak annyira lesz részletes, amennyire a felület felbontása az:

Környezet leképzés Tükröző és törő felületű objektumok modellezésére használhatjuk. Nem szükséges hozzá pontos fizikai modellezés Visszaverődő sugár: A kamerából induló nézeti fénysugár és az objektum metszéspontjához a visszaverődő fénysugár és a közvetítőfelület metszéspontját rendeljük (environment mapping ).

Környezet leképzés Gömbi leképzéssel:

Környezet leképzés Blinn-Newell leképzéssel:

Környezet leképzés Kocka leképzéssel:

Kocka textúrák A kocka textúrák (cube maps) különleges, hat lapból álló textúrák, amik három koordinátával címezhetők. A hat lap a +X, -X, +Y, -Y, +Z, -Z irányoknak felelnek meg, mindegyik egy lapja a kockának.

Környezet leképzés, tükröződés A kocka leképzéssel bonyolult transzformációk nélkül megkaphatjuk a textúra koordinátákat. Az kocka textúra megfelelő pontját a kamerába mutató vektor normál vektorra vett tükörképe adja. A kapott pontból kell olvasni a textúrából float3 R = reflect(-directionToCamera, input.Normal); float4 envColor = texCUBE(envMapSampler, R);

Környezet leképzés, fénytörés Hasonlóan járunk el, mint a tükröződés esetén Fénytörés során, a sugár elhajlását a Snellius–Descartes-törvény adja, ami szerint Az kocka textúra megfelelő pontját a refract függvény adja. A kapott pontból kell olvasni a textúrából float3 R = refract(-directionToCamera, input.Normal, 1.01); float4 envColor = texCUBE(envMapSampler, R);

További környezet leképzésen alapuló technikák Chromatikus diszperzió R,G,B csatornánként külön számítjuk a fénytörés, kissé eltérő törésmutatókkal. Példa kód: float4 envColor = 1; float3 R = refract(-directionToCamera, input.Normal, 1.01); envColor.r = texCUBE(envMapSampler, R).r; R = refract(-directionToCamera, input.Normal, 1.04); envColor.g = texCUBE(envMapSampler, R).g; R = refract(-directionToCamera, input.Normal, 1.07); envColor.b = texCUBE(envMapSampler, R).b;

További környezet leképzésen alapuló technikák Fresnel hatás Egyszerre használunk tükröződést illetve fénytörést A visszavert és átengedett fény arányát a beesési szög és az anyagjellemzők határozzák meg Példa kód: float power = 5; float reflectionCoefficient = max(0, min(1, 1-pow(dot(directionToCamera, input.Normal), power))); float3 Rfl = reflect(-directionToCamera, input.Normal); float3 Rfr = refract(-directionToCamera, input.Normal, 1.05); float4 envColor = reflectionCoefficient*texCUBE(envMapSampler, Rfl)+(1-reflectionCoefficient)*texCUBE(envMapSampler, Rfr);

További környezet leképzésen alapuló technikák SkyBox/SkySphere Egy olyan modellt hozunk létre, ami teljesen tartalmazza a színteret, végtelenül távol van, elérni nem lehet, de „forgásra” változik. Ehhez a verex shader-ben a modellt eltoljuk a hátsó vágósíkhoz, textúra-koordinátáknak pedig a csúcspontok eredeti pozícióit használjuk.

További környezet leképzésen alapuló technikák SkyBox/SkySphere Példa kód: void VertexShaderFunction(float3 Position : POSITION0, out float4 SkyPos : POSITION0, out float3 SkyCoord : TEXCOORD0) { float3 worldPosition = mul(Position, World); float3 viewPosition = mul(worldPosition, View); SkyPos = mul(float4(viewPosition, 1), Projection).xyww; SkyCoord = Position; }