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
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.
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.
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.
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
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.):
Terep Szécsi László. Mechanizmus NxHeightField-ek definiálása PhysicsModel-be NxHeightFieldShapeDesc-ek betöltése Mesh-ek gyártása az NxHeightField- ekből.
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.
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
Geometry instancing Szécsi László. copy-paste-rename gg009-Gui folder vcxproj, filters átnevezés solution/add existing project rename project working.
User interface Szécsi László. Egg projectben DXUTgui.cpp – CDXUTDialogResourceManager::CDXUTDialogReso urceManager() m_SpriteBufferBytes11 = 0; ezt kihagyták,
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 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.
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.
ELTE-IK, Számítógépes grafika 2./haladó 2. gyakorlat Klár Gergely.
Informatikai eszközök a virtuális valóság szolgálatában Hapák József ELTE-IK X. Eötvös Konferencia.
Képek, képfeldolgozás Szirmay-Kalos László.
Lighting III.
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
Dalit Shental-Bechor, Turkan Haliloglu, Nir Ben-Tal 
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 Kocka 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)

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)

Voxel szín és opacitás: Transfer functions l Röntgen: –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 |

Különböző árnyalási modellek, szegmentálás

Phong árnyalás

Maximum intenzitás vetítés

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 Render a cube and store the image in a texture

GPU Isosurface ray-casting CPU program Vertex shader Pixel shader Vertices of the window quad hpos=fullscreen textcoords volume, entry, exit texture ids eye, isolevel, material/light properties Rasterization Interpolation volume entrytex exittex Interpolated textcoords Ray casting

CPU program - OpenGL display void Display( ) { cgGLSetParameter3f(eye, 10, 20, 30); cgGLSetParameter3f(lookat, 3, 5, 6); cgGLSetParameter3f(right, Right.x, Right.y, Right.z); cgGLSetParameter3f(up, Up.x, Up.y, Up.z); // PASS: non uniform parameters glBegin( GL_QUADS ); Vector p = lookat - Right + Up; glTexCoord2f(0, 0); glVertex3f(p.x, p.y, p.z) p = lookat - Right - Up; glTexCoord2f(0, 1); glVertex3f(p.x, p.y, p.z) p = lookat + Right - Up; glTexCoord2f(1, 1); glVertex3f(p.x, p.y, p.z) p = lookat + Right + Up; glTexCoord2f(1, 0); glVertex3f(p.x, p.y, p.z) glEnd(); }

Ray casting: vertex shader void VertexShader( in float3 position : POSITION, in float2 uv : TEXCOORD0, out float4 hPosition : POSITION, out float2 ouv : TEXCOORD0, out float3 p : TEXCOORD1 ) { hPosition = float4(uv.x * 2 – 1, 1 – uv.y * 2, 0, 1); ouv = uv; p = position; }

Ray casting: fragment shader void FragmentShader( in float3 uv : TEXCOORD0, in float3 p : TEXCOORD1, uniform float3 eye, uniform sampler2D entrytex, exittex, uniform sampler3D volume, uniform float isolevel, uniform float3 lightdir, lightint, kd ) : COLOR { float entry = tex2d(entrytex, uv); float exit = tex2d(exittex, uv); float raydir = normalize(p – eye); 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 float3 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 * saturate(dot(lightdir, normal)); } return float4(color, 1); }

Video