Térfogatvizualizáció Szirmay-Kalos László. Térfogati modellek v(x,y,z) hőmérséklet sűrűség légnyomás potenciál anyagfeszültség... v(x,y,z) tárolás: 3D.

Slides:



Advertisements
Hasonló előadás
Pannon Egyetem – Fizika Intézet University of Pannonia – Institute of Physics Metamer minták „előállítása” és színinger-metrikai felhasználása ’Producing’
Advertisements

Árvai Zoltán Számalk Oktató központ.
 Árnyalási egyenlet  Saját emisszió  Adott irányú visszaverődés.
2D képszintézis Szirmay-Kalos László.
Globális illumináció (GI)
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...
GPU Szirmay-Kalos László.
Sugárkövetés: ray-casting, ray-tracing
3D képszintézis fizikai alapmodellje
Térfogatvizualizáció Szirmay-Kalos László. Térfogati modellek v(x,y,z) hőmérséklet sűrűség légnyomás potenciál anyagfeszültség... v(x,y,z) tárolás: 3D.
Sugárkövetés: ray-casting, ray-tracing Szirmay-Kalos László.
Bevezetés a tárgyakhoz Tárgyak  Objects are the containers for values of a specified type  Objects are either signals, variables or constants  Once.
Számítógépes grafika Szirmay-Kalos László
3D képszintézis fizikai alapmodellje
FelültöltésVHDL Felültöltés (Overloading) n Áttekintés n Példák.
Szécsi László. June 2010 DirectX SDK Visual Studio 2010.
Grafikus játékok fejlesztése Szécsi László g11-physics
 Gauss szűrő uniform sampler2D colorMap; const float kernel[9] = float[9]( 1.0, 2.0, 1.0, 2.0, 4.0, 2.0, 1.0, 2.0, 1.0); out vec4 outColor; void main(){
GPGPU labor I. OpenGL, Cg.
 Fény fotonok szimulációja  Nem változtatja meg a frekvenciát ütközéskor  Homogén és inhomogén közegben.
 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.
GPGPU labor V. GPU ray tracing. Kezdeti teendők Tantárgy honlapja, GPU ray tracing A labor kiindulási alapjának letöltése (lab5_base.zip), kitömörítés.
Számítógépes grafika, PPKE-ITK, Benedek Csaba, 2010 Geometriai modellezés 2. előadás.
Course Situation and Event Driven Models for Multilevel Abstraction Based Virtual Engineering Spaces Óbuda University John von Neumann Faculty of Informatics.
Európai Neutronkutató Központ létesítése Magyarországon
Multimédiás programok készítése Macromedia Director fejlesztői környezetben 4. előadás Készítette: Kosztyán Zsolt
Fejlett grafikai algoritmusok Megvilágítási modellek
Számítógépes grafika 3. gyakorlat.
Számítógépes grafika 5. gyakorlat. Előző órán Textúrázási módok Pixel shader használata.
Biometria I. SANB_BI1019 Pearson-féle Chi-négyzet (χ2) teszt Molnár Péter Állattani Tanszék
Könyvtár, csomag és alprogramokVHDL Könyvtár, csomag és alprogram n Library és use n Package n Alprogramok –Procedure –Function –Resolution function Egy.
Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke 1 Tokozások termikus tesztje, minősítése.
Sugárkövetés: ray-casting, ray-tracing
Térfogatvizualizáció
Pozitron-Emission Tomography Reconstruction (A computer graphics view) Szirmay-Kalos László.
Motor II. Env map Spotlight Szécsi László. Letöltés /code/E/code/EggCoreSecondBase.zip Kibontani (vagy előző labor folyt.):
Fraktálok és csempézések
Environment mapping Szécsi László. Új osztály: Lab3EnvMap copy&paste: Lab2Trafo.h -> Lab3EnvMap.h copy&paste: Lab2Trafo.cpp -> Lab3EnvMap.cpp copy&paste:
Vízfelület Szécsi László. Nyílt víz a nyílt óceánon a felületi cseppecskék körmozgást végeznek trochoid hullámforma hullámhossz hullámmagasság amplitúdó.
Transzformációk, textúrák, árnyalás Szécsi László.
DirectX9 empty project Szécsi László. Project létrehozása Microsoft DirectX SDK (August 2008) telepítése Start Menu \ Microsoft DirectX SDK (August 2008)\
OIS. Kezdeti teendők Letöltés: OgreLabControllersBase.zip Kicsomagol, betölt:.sln Additional include és library path beállítása Working directory beállítása.
Sugárkövetés: ray-casting, ray-tracing
Térfogatvizualizáció
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.
II. labor Lépések kezelése. Új metódus a Square osztályba public static int letterToFileIndex(char letter) throws NumberFormatException { int i = 0; for.
Textúrák Grafikus játékok fejlesztése Szécsi László g07-texture.
Kamera, 3D, transzformációk Szécsi László. Math.zip kibontása az Egg projectkönyvtárba – float2, foat3, float4 típusok, HLSL-ben megszokott műveletekkel.
Grafikus játékok fejlesztése Szécsi László t09-texture
Geometry instancing Szécsi László. copy-paste-rename gg009-Gui folder vcxproj, filters átnevezés solution/add existing project rename project working.
Textúrázás Szécsi László. giraffe.jpg letöltése SolutionDir/Media folderbe.
 Kvantált kép fényesség értékei: G [ 0, Gmax ]  G fényességű pontok száma: P(G)
GPGPU labor XII. Tomográfiás rekonstrukció. Kezdeti teendők Tantárgy honlapja, Monte Carlo szimuláció A labor kiindulási alapjának letöltése (lab12_base.zip),
GPGPU labor IX. Lineáris egyenletrendszerek megoldása.
GPGPU labor II. GPU mint vektor processzor. Kezdeti teendők Tantárgy honlapja, Bevezetés – Alap könyvtárak letöltése Tantárgy honlapja, GPU mint vektor.
Készült az ERFP – DD2002 – HU – B – 01 szerzősésszámú projekt támogatásával Chapter 6 / 1 C h a p t e r 6 Elastic Critical Plate Buckling Loads.
Számítógépes grafika DirectX 5. gyakorlat. Emlékeztető Háromdimenziós alapok befejezése Textúrázás.
OpenGL 4 shaderek, GLSL Valasek Gábor
Jeni László Attila Klár Gergely
Brightr Megvilágítás modellezése. Csapattagok  Illés László  Palatinus Endre  Provits Milán  Török Péter.
Számítógépes grafika, PPKE-ITK, Benedek Csaba, 2010 Geometriai modellezés 2. előadás.
Informatikai eszközök a virtuális valóság szolgálatában Hapák József ELTE-IK X. Eötvös Konferencia.
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.
Képek, képfeldolgozás Szirmay-Kalos László.
Vizualizáció és képszintézis
Vizualizáció és képszintézis
GPGPU – CUDA 2..
Alapok Model betöltés Anyagjellemzők Fényforrások Shaderek
Sugármetszés implicit szintfelülettel
Előadás másolata:

Térfogatvizualizáció Szirmay-Kalos László

Térfogati modellek v(x,y,z) hőmérséklet sűrűség légnyomás potenciál anyagfeszültség... v(x,y,z) tárolás: 3D tömb

Térfogati modell megjelenítése l Megjelenítés átlátszó anyagként (belsejébe belelátunk) l Adott szintfelület kiemelése (külsôt lehámozzuk)

Átlátszó anyagok L(s + ds) L(s) dL(s)/ds = - kt · L(s) + ka · L e +  f(  ‘,  ) L i (  ‘) d  ‘ L(s +  s) L(s) L(s +  s) = L(s) - kt  s · L(s) + Li(s)  s C(s)  (s)

Fényemittáló, fényelnyelő anyag

Számítás fénysugárkövetéssel L = 0 for(s = 0; s < T; s +=  s) { L = (1-  (s)) · L + C(s) } L(s) L(s +  s) = (1-  (s)) · L(s) + C(s) s=0

Számítás láthatóság sugárkövetéssel L* =  0 for( s = T; s >0 ; s -=  s ) { L* += (1-  ) · C(s)  (1-  ) · (  (s)) if (  break } L*(s)  (s) L*(s-  s)=L*(s)+(1-  (s)) · C(s)  (s-  s)=(  (s)) · (  (s))

Térfogat vetítés L(s) L(s +  s) = (1-  (s)) · L(s) + C(s)OpenGL blending

Voxel szín és opacitás: Transfer functions: (C,  )=T(v függv) l Röntgen: ( C,  )=T(v(x,y,z)) –opacitás = v(x,y,z) –C(0) = 1, egyébként 0 l Klasszikus árnyalási modellek –opacitás: v osztályozása –C = árnyalási modell (diffúz + Phong) l normál = grad v l opacitás *= | grad v | l Magasabb rendű derivált (görbület) l Transzlucens anyagok (subsurface scattering)

( C,  ) = T(v(x,y,z))

Maximum intenzitás vetítés

Phong

Illusztratív vizualizáció

Transzlucens megjelenítés Felező vektor

Transzlucens megjelenítés

Szintvonal

Szintfelület

Marching cubes v(x,y,z) < szint v(x,y,z) > szint

Masírozó kockák Szintérték = 110 Szintérték = 60

Isosurface ray casting v(x,y,z) > isovalue normal = grad v

GPU ray-casting Unit cube with 3D texture eye lookat right up p = lookat +  right +  up ,  are in [-1,1] p q entry exit

Isosurface ray-casting For each pixel Find pixel center p raydir = normalize(p – eye); Find exit and entry for(t = entry; t < exit; t+=dt) { q = eye + raydir * t; if (volume[q] > isovalue) break; } normal vector estimation; illumination } Full screen quad Interpolation from the corners central differences Clipping

GPU Isosurface ray-casting CPU program Vertex shader Pixel shader Vertices of the window quad hpos=fullscreen textcoords volume eye, isolevel, material/light properties Rasterization Interpolation Volume ray/window Ray casting

CPU program - OpenGL display void Display( ) { // PASS: non uniform parameters glBegin( GL_QUADS ); Vector p = lookat - Right + Up; glTexCoord3f(p.x, p.y. p.z); glVertex3f(-1, 1, 0); p = lookat - Right - Up; glTexCoord3f(p.x, p.y. p.z); glVertex3f(-1, -1, 0); p = lookat + Right - Up; glTexCoord3f(p.x, p.y. p.z); glVertex3f(1, -1, 0); p = lookat + Right + Up; glTexCoord3f(p.x, p.y. p.z); glVertex3f(1, 1, 0); glEnd(); }

Ray casting: vertex shader void VertexShader( in float4 hPosIn : POSITION, in float3 wPosIn : TEXCOORD0, out float4 hPosOut : POSITION, out float3 wPosOut : TEXCOORD0 ) { hPosOut = hPosIn; wPosOut = wPosIn; }

Ray casting: fragment shader void FragmentShader( in float3 p : TEXCOORD0, uniform float3 eye, uniform sampler3D volume, uniform float isolevel, uniform float3 lightdir, lightint, kd  out float3 color : COLOR ) { float3 raydir = normalize(p – eye); float2 inUnitCube = Intersect(eye, raydir); float entry = inUnitCube.x, exit = inUnitCube.y; float dt = (exit – entry) / STEPS; bool found = false; float3 q; for(t = entry; t < exit; t += dt) { if ( !found ) { q = eye + raydir * t; if (tex3D(volume, q).r > isolevel) found = true; }

Ray casting fragment shader cont’d color = float3(0, 0, 0); // background color if ( found ) { float3 normal; normal.x = tex3d(volume, q + float3(1/RES,0,0)) – tex3d(volume, q - float3(1/RES,0,0)); normal.y = tex3d(volume, q + float3(0,1/RES,0)) – tex3d(volume, q - float3(0,1/RES,0)); normal.z = tex3d(volume, q + float3(0,0,1/RES)) – tex3d(volume, q - float3(0,0,1/RES)); normal = normalize( normal ); color = lightint * kd * saturate(dot(lightdir, normal)); }

Video