Vizualizáció és képszintézis

Slides:



Advertisements
Hasonló előadás
OpenGL 2. gyakorlat Hapák József
Advertisements

L ÁTHATÓSÁG MEGHATÁROZÁSA tavaszi félév.
C++ programozási nyelv Gyakorlat hét
2D képszintézis Szirmay-Kalos László.
2D grafikus rendszerek Szirmay-Kalos László. 2D grafikus editor: GUI, use-case, dinamikus modell L L L R LD LU MouseLDown első pont MouseLDown második...
Inkrementális 3D képszintézis
GPU Szirmay-Kalos László.
Inkrementális 3D képszintézis Szirmay-Kalos László.
2D képszintézis Szirmay-Kalos László. Számítógépes grafika feladata képszintézis Virtuális világ modell modellezés Metafórák: 2D rajzolás világ = sík.
Számítógépes grafika Szirmay-Kalos László
Sugárkövetés: ray-casting, ray-tracing Szirmay-Kalos László.
Számítógépes grafika Szirmay-Kalos László
3D képszintézis fizikai alapmodellje
Adatbányászati technikák (VISZM185)
Bevezetés.  A számítógépes grafika inkrementális képszintézis algoritmusának hardver realizációja  Teljesítménykövetelmények:  Animáció: néhány nsec.
GPGPU labor I. OpenGL, Cg.
 Nincs szinkronizáció és kommunikáció  Csővezeték alkalmazása  Párhuzamosítás Proc 2Proc 1 Csővezeték Proc 1 Proc 21 Proc 22 Párhuzamosság.
Bevezetés a Java programozásba
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 6. Gyakorlat const, static, dinamikus 2D.
Grafikus Rendszerek Zsitnyánszki Zoltán.
LabView használata PTE PMMK MIT Nagyváradi Anett
Számítógépes grafika, PPKE-ITK, Benedek Csaba, D képszintézis 4. előadás.
Számítógépes grafika, PPKE-ITK, Benedek Csaba, 2010 Geometriai modellezés 2. előadás.
A számítógépes grafika céljai és feladatai
Mérnöki objektumok leírása és elemzése virtuális terekben c. tantárgy Budapesti Műszaki Főiskola Neumann János Informatikai Kar Intelligens Mérnöki Rendszerek.
2D képszintézis és textúrák
Fejlett grafikai algoritmusok Megvilágítási modellek
Számítógépes grafika 3. gyakorlat.
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 ◦
Javascript Microsoft által készített kiegészítése Statikus típusosság Nagy projektek Windows 8 fejlesztésénél WinRT egy részét ebben írták Nyílt forráskódú,
Pixel műveletek, képek Szirmay-Kalos László.
Vektorok különbsége e-x = [ex-xx ey-xy ez-xz] e e-x x szempozíció
Fraktálok és csempézések
2D képszintézis Szirmay-Kalos László.
Inkrementális 3D képszintézis Szirmay-Kalos László.
Számítógépes grafika Bevezetés
Rendering pipeline Ogre3D
Textúrák Grafikus játékok fejlesztése Szécsi László g07-texture.
Plakátok, részecskerendszerek Grafikus játékok fejlesztése Szécsi László g09-billboard.
Effect framework, HLSL shader László Szécsi. forráskódban elérhető egyszerűsíti a shaderek fordítását, rajzolási állapot beállítását – pass: egy ilyen.
Többmenetes renderelés Grafikus játékok fejlesztése Szécsi László g11-multipass.
Grafikus játékok fejlesztése Szécsi László t09-texture
Inkrementális 3D képszintézis
GPU ELTE IK Számítógépes Grafika II. Jeni László Attila
OpenGL 4 shaderek, GLSL Valasek Gábor
GPGPU A grafikus hardver általános célú felhasználása
2. gyakorlat DirectX 2007/2008 tavasz Klár Gergely
Fejlett grafikai algoritmusok Megvilágítás SZTE, 2010.
Informatikai eszközök a virtuális valóság szolgálatában Hapák József ELTE-IK X. Eötvös Konferencia.
Vizualizáció és képszintézis Sugárkövetés (Dart + GLSL) Szécsi László.
Számítógépes grafika gyakorlat: DirectX 2007/2008 tavasz Klár Gergely
Számítógépes Grafika OpenGL 4 shaderek, GLSL. OpenGL 4 A következő programozható fázisok vannak a 4.x-es OpenGL-ben: Vertex shader Tesselation control.
A számítógépes grafika alapjai, PPKE-ITK, Benedek Csaba, 2010 Tanagyag forrás © Szirmay-Kalos László, BME A számítógépes grafika céljai és feladatai 1.
Képek, képfeldolgozás Szirmay-Kalos László.
Vizualizáció és képszintézis Térfogati textúrák kezelése (Dart + GLSL) Szécsi László.
Anyagok, megvilágítás. Rendering egyenlet I(x,  )=I e (x,  )+   I(h(x,-  ’ ,  ’) f r (  ’,x,  ) cos  ’d  ’
Bevezetés.  Miért …  … egyszálúan programozunk?  … probléma ez?  Hogyan …  … változik ez?  … tudjuk kihasználni?  Megéri-e párhuzamosítani?
3D grafika összefoglalás
Global Illumination.
A grafikus hardware programozása
OpenGL 2. gyakorlat Valasek Gábor
Vizualizáció és képszintézis
Szécsi László 3D Grafikus Rendszerek 14. előadás
Vizualizáció és képszintézis
GPGPU – CUDA 2..
OpenGL II.
OpenGL kiterjesztések (extensions)
JavaScript a böngészőben
Bevezetés GPGPU Alkalmazások.
Environment mapping Szécsi László
Előadás másolata:

Vizualizáció és képszintézis A grafikus hardver programozása Szécsi László

GPU pipeline input vertex bufferek index buffer rajzolási állapot egyes pipeline-elemek működési beállításai programozható elemek shader programjai erőforrások – globális memóriában adatok globális (uniform) változók textúrák adatbufferek csak olvasható

GPU pipeline output kép render target mélységbuffer (+stencil) frame buffer textúra mélységbuffer (+stencil)

GPU pipeline tesszellátor nélkül IA VS IA RS FS OM textúrák TS

Rajzolási állapot IA IA RS OM attribute binding primitive topology rasterizer state viewport depth-stencil state blend state

Lépések I vertexek összeállítása Vertex Shader model trafó árnyalás view és proj trafó primitívek összeállítása vertexek összeválogatása vertex bufferbeli sorrend alapján index bufferbeli indexek alapján

Lépések II raszterizálás Fragment shader z-teszt blending hátsólap-eldobás vágás homogén osztás viewport trafó Fragment shader pixelszín meghatározása z-teszt blending

Vertexek összeállítása Vertex buffer rekordok tömbje IA pos normal tex pos normal tex pos normal tex vertex

Vertex shader bejövő adat kimenő adat uniform: model, view, proj mátrixok, fények, ... minden vertexre más: vertex és instance elemek [pozíció, normál, szín, texcoord] kimenő adat pozíció homogén normalizált képernyő koordinátákban árnyalás eredménye [szín] bármi más [normál, texcoord] VS

Primitívek összeállítása non-indexed vertex bufferben egymás után következők triangle list triangle strip 1 2 3 4 5 6 1 2 3 4 5 2 5 2 4 1 3 4 6 1 5 3 WebGL.RenderingContext.TRIANGLES WebGL.RenderingContext.TRIANGLE_STRIP

Raszterizáló egység: lapeldobás körüljárási irány (képernyőn) alapján eldobhatunk lapokat ha a modellünkben (index bufferben) konzisztens a háromszögek körüljárási iránya, ezzel eldobhatjuk a test hátsó lapjait a belsejét úgysem látjuk, ha poliéder

Raszterizáló egység: vágás ami kilógna a képernyőről, vágjuk le hsz vágás szakasz vágásra visszavezethető szakasz vágás = pont vágás + metszéspont számítás normalizált képernyőkoordinátákban [-1, -1, 0] [1, 1, 1] téglatestre vágunk [Descartes] Átfordulási probléma a homogén osztás előtt kell vágni

ablak a virtuális világra Átfordulási probléma itt kellene látszania, nem a két vetületi pont között ide vetül ide vetül 1 ablak a virtuális világra

ablak a virtuális világra Átfordulási probléma első vágósík, mögöttünk levő dolgok eldobása itt kellene látszania nem a két vetületi pont között ide vetül metszéspont ablak a virtuális világra

Raszterizáció homogén osztás viewport trafó: pixel koordináták lineáris interpoláció vertex output adatok (kivéve pozíció) interpolálása minden kitöltendő pixelhez pixel shader indítása minden pixelszín meghatározásához RS

Pixel shader bejövő adat kimenő adat PS bejövő adat vertex shader kimenő adatai lineárisan interpolálva pixel koordináták kimenő adat pixel szín [RGBA] mélység, ha felül akarjuk írni a háromszög csúcsainak z-jéből interpolált eredetit ha nem, akkor a z-teszt előrehozható a pixel shader elé

Kimeneti műveletek bufferek műveletek célterület: frame buffer vagy textúra mélység-stencil buffer műveletek mélység teszt stencil teszt keverés [alfa blending] OM

Z-teszt a 3D takarási probléma megoldására 2. 1. 3. 1 0.1325 0.628 0.3325

Keverés [alpha blending] A célterületen már meglevő érték [dest] és az újonnan számított szín [src] kombinálása mindkettőhöz megadható egy súly (0, 1, srcalpha, dstalpha, 1-alpha ...) megadható a függvény (add, subtract, min, max ...) átlátszóság: hátulról előre rajzolás + blending src * srcalpha + dst * (1- srcalpha)

WebGL weboldalon fut nem kell plugin, nem kell install mindenhol megy

WebGL OpenGL ES 2.0 for JavaScript JavaScript???

WebGL Does not include Vertex shader Fragment shader Geometry shader Vertex buffer Texture Framebuffer Render state Does not include Geometry shader Tessellation shader Vertex Array Object Multiple render target Floating-point texture Compressed texture FS depth write 3D texture

WebGL Nincsnek GPGPU képességek sem de lesz WebCL nemsokára Atomics Texture load store de lesz WebCL nemsokára WebGL 2 már van Firefox-ban

WebGL ha az OpenGL megvan, a WebGL ugyanaz na de JavaScript??? Dart!

WebGL Similar to desktop OpenGL: // ... gl.bindBuffer(/* ... */); gl.vertexAttribPointer(/* ... */); gl.useProgram(/* ... */); gl.drawArrays(/* ... */);

Dart Google webprogramozási nyelve csak a Chrome-ban (Dartium) van Dart virtuális gép de JavaScript-re fordítható, és akkor bárhol megy Van Dart Editor nem árt mellé egy Sublime Text vagy valami

Dart típusok minden Object dinamikusan típusos igen, azt int, double, bool is dinamikusan típusos lehetnek dynamic objektumok: var a = 1; a = 'Bob‘; de lehet statikus típust adni a változóknak, és ezt a fordító ellenőrzi

Dart visibility nincs: public, private, protected helyette: _változó csak library-n belül látszik