 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(){

Slides:



Advertisements
Hasonló előadás
 Árnyalási egyenlet  Saját emisszió  Adott irányú visszaverődés.
Advertisements

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.
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.
Sűrűségfüggvény Parzen becslés Mintapontszám, szigma.
Digitális képanalízis
Szécsi László. June 2010 DirectX SDK Visual Studio 2010.
 Lineáris egyenlet  algebrai egyenlet  konstansok és első fokú ismeretlenek  pl.: egyenes egyenlete  Lineáris egyenletrendszer  lineáris egyenletek.
 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.
Socket programozás Példák
TRANZIENS ADATTÁROLÁS State objektum Egy alkalmazásszintű gyűjtemény (Dictionary), mely Tombstone esetén megőrzi tartalmát a memóriában kulcs/érték párokként.
Motor Potencióméter Kincses Levente Elektronika 89/2004.
Delegátumok C#-ban Krizsán Zoltán iit 1.0.
Természetesen P = Q = O esetén O + O = O. Tetszőleges, nem 2, vagy 3 karakterisztikájú test esetén hasonló módon eljárva E(K)-n zárt műveletet.
Windows Server 2008 { PowerShell }
Folytonos jelek Fourier transzformációja
Gábor Dénes Főiskola (IAI)Programozási technológia (Java) - III. / 1 13.Állományok, bejegyzések 14.Folyamok 15.Közvetlen hozzáférésű állomány.
Eye-RIS rendszer programozása D46 laborgyakorlat.
Hasznos ismeretek Hogyan bővítsük ismereteinket AVRDUDEflags -E noreset.
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.
Motor IIII. Vezérlés Szécsi László. Letöltés diák: //l09-engine4.ppt.
Motor IIII. PhysX utáni rendberakás Vezérlés Szécsi 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.):
PhysX autó Szécsi László. Letöltés diák: bagira.iit.bme.hu/~szecsi/GraphGame //l12-car.ppt modell: bagira.iit.bme.hu/~szecsi/GraphGame //pickup.zip.
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ó.
PhysX integráció Szécsi László. Letöltés diák: bagira.iit.bme.hu/~szecsi/GraphGame //l11-physx.ppt modell: bagira.iit.bme.hu/~szecsi/GraphGame //pickup.zip.
Transzformációk, textúrák, árnyalás Szécsi László.
Motor V. Ütközés detektálás és válasz Szécsi László.
V. labor Thread, animáció. Animáció A figurák a lépés kijelölése után nem rögtön az új helyen teremnek, hanem egyenes vonal mentén mozognak a cél felé.
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.
SzgLab 3. Java. I. labor Alapok, OOP váz, megjelenítés konzolon.
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.
IIII. labor Képfileok kezelése (media resources) Canvas Egérkezelés.
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.
User interface Szécsi László. Egg projectben DXUTgui.cpp – CDXUTDialogResourceManager::CDXUTDialogReso urceManager() m_SpriteBufferBytes11 = 0; ezt kihagyták,
Rekurzív algoritmusok
 MipMap  glTexImage2D(GL_TEXTURE_2D, level, GL_RGBA32F,...);  glFramebufferTexture2D(GL_FRAMEBUFFER,..., TexID, mipLevel);
 Map  Reduce  Scan  Histogram  Compact const size_t dataSize = 1024; cl_kernel mapKernel = cl.createKernel(clProgram, "map"); float* hData = new.
 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 X. Monte Carlo módszerek. Kezdeti teendők Tantárgy honlapja, Monte Carlo módszerek A labor kiindulási alapjának letöltése (lab10_base.zip),
GPGPU labor III. Iteratív algoritmusok. Kezdeti teendők Tantárgy honlapja, Iteratív algoritmusok A labor kiindulási alapjának letöltése (lab3base.zip),
GPGPU labor IX. Lineáris egyenletrendszerek megoldása.
GPGPU Labor 15.. Párhuzamos primitívek Map Reduce Scan Histogram Compact.
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.
 Farkas György : Méréstechnika
Programozási tételek.
és Gazdaságtudományi Egyetem
 OpenCL platform  Számító eszközök  OpenCL kontextusok  Parancs sorok  Szinkronizáció  Memória objektumok  OpenCL programok  OpenCL függvények.
Programozási tételek.
2. Gyakorlat Zalatnai Csongor
Ciklusok 1 Számlálós (léptető) ciklus Szintaxis: for ( i=1; i
SVM, kernel módszerek Szabó Zoltán. Tartalomjegyzék Példák, szemlélet Definíciók: –margin, support vektor –pozitív definit, Gram-mtx, kernel –RKHS, feature.
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
2. Házi feladat „Digitális kép szűrése”. A feladat I. Az előzően beszerzett digitális kép szűrése Szűrés –Átlagoló szűrés 5×5-ös kernellel –Medián-szűrés.
Google Summer of Code 2015 OpenCL image support for the r600g driver.
Szuper Szoftverek Szuperszámítógépekre
Article title: Whole genome sequencing classifies parrot bornavirus 5 into a novel virus species   Journal name: Archives of virology Author names: Szilvia.
Triggerek gyakorlás.
Monte Carlo módszerek.
TÁMOP-6.2.4/A/11/ „A Borsod-Abaúj-Zemplén Megyei Kórház és Egyetemi Oktató Kórház Humánerőforrás fejlesztése foglalkoztatás támogatás révén”
Farkas Bálint | Technical Evangelist | Microsoft
Lineáris egyenletrendszerek megoldása
2. Gyakorlati feladat Vizsgáljuk meg a cukor töltési tömege alapján a folyamat minőségképességét! Gauss-háló segítségével FTH = ,5 = 16,5 ATH = 16.
Szécsi László 3D Grafikus Rendszerek 11. előadás
Innováció és fenntartható felszíni közlekedés konferencia 2016
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
ALSONANA INTERNATIONAL FORUM
Előadás másolata:

 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(){ outColor = vec4(0.0); for(int x=-1; x<1; ++x) for(int y=-1; y<1; ++y) outColor += texelFetch(colorMap, ivec2(gl_FragCoord) + ivec2(x,y)) * kernel[(x+1)+(y+1)*3] / 16.0; }

uniform sampler2D colorMap; const float kernel[3] = float[3]( 1.0, 2.0, 1.0 ); out vec4 outColor; void main(){ outColor = vec4(0.0); for(int x=-1; x<1; ++x) outColor += texelFetch(colorMap, ivec2(gl_FragCoord) + ivec2(x,0)) * kernel[x+1] / 4.0; } uniform sampler2D colorMap; const float kernel[3] = float[3]( 1.0, 2.0, 1.0 ); out vec4 outColor; void main(){ outColor = vec4(0.0); for(int y=-1; y<1; ++y) outColor += texelFetch(colorMap, ivec2(gl_FragCoord) + ivec2(0,y)) * kernel[y+1] / 4.0; }

uniform sampler2D colorMap; uniform vec2 textureSize; in vec2 fTexCoord; out vec4 outColor; const float ONE_PER_SQRT_TWOPI = ; float w1(float x){ return ONE_PER_SQRT_TWOPI / sigma / sigma * exp(-x*x/2.0/sigma/sigma); } void main(){ outColor = vec4(0.0); for(int i= -N/2; i<N/2; ++i){ float d = i / textureSize.x; outColor += texture(colorMap, fTexCoord – vec2(d,0.0)) * w1(d); }

 Fontosság szerinti mintavétel

 Szeparálható Gauss szűrő uniform sampler2D colorMap; in vec2 texCoord; const float offset[5] = float[5](-1.282, , 0, 0.524, 1.282); void main(){ for(int x=-2; x<2; ++x) outColor += I(texCoord + vec(offset[x], 0.0)) / 5.0; } uniform sampler2D colorMap; in vec2 texCoord; const float offset[5] = float[5](-1.282, , 0, 0.524, 1.282); void main(){ for(int y=-2; y<2; ++y) outColor += I(texCoord + vec(0.0, offset[y])) / 5.0; }

 A renderelés célpontja  Összefogja a rajzolási állapotokat  Hasonló a textúra objektumhoz  Képernyő bufferek  Framebuffer object  Color buffer ▪ GL_MAX_COLOR_ATTACHMENTS  Depth buffer  Stencil buffer

GLuint framebuffer; glGenFramebuffers(1, &framebuffer); glBindFramebuffer(GL_FRAMEBUFFER, framebuffer); GLuint* colorAttachments = new GLuint[planes]; glGenTextures(planes, colorAttachments); for(int i=0; i<planes; ++i){ // textura beallitasok glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + i, GL_TEXTURE_2D, colorAttachments[i], 0); } GLuint depthBuffer; glGenRenderbuffers(1, &depthBuffer); glBindBuffer(GL_RENDERBUFFER, depthBuffer); glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT24, width, height); glFramebufferRenderBuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, depthBuffer); glBindFramebuffer(GL_FRAMEBUFFER, 0); GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER);

 Használható formátumok  Color attachment ▪ GL_RED, GL_RG, GL_RGB, GL_RGBA  Depth attachment ▪ GL_DEPTH_COMPONENT ▪ GL_DEPTH_STENCIL  Stencil attachment ▪ GL_STENCIL_INDEX ▪ GL_DEPTH_STENCIL

 Framebuffer kritériumok  Minden attachment komplett ▪ Megfelelő típusok a csatlakozási pontokon ▪ Használható formátum ▪ Nem nulla méret  Legalább egy képbuffer van  Implementáció függő megkötések

 Beállítás a renderelés célpontjává  Megkötések  Ha nem egyforma méretűek a bufferek ▪ A metszet területre rajzolunk  Ha nem egyforma a layerek száma ▪ A metszet layerekre rajzolunk  A többi pixel értéke határozatlan lesz! glBindFrameBuffer(GL_FRAMEBUFFER, framebufferObject); glDrawBuffers(planes, buffers); glViewport(0, 0, width, height);

 Több szín attachment használata out vec4 outColor[3]; void main(void){ outColor[0] = vec4(1.0, 0.0, 0.0, 1.0); outColor[1] = vec4(0.0, 1.0, 0.0, 1.0); outColor[2] = vec4(0.0, 0.0, 1.0, 1.0); } out vec4 outColor[3]; void main(void){ outColor = vec4[3]( vec4(1.0, 0.0, 0.0, 1.0), vec4(1.0, 0.0, 0.0, 1.0), vec4(1.0, 0.0, 0.0, 1.0)); }

 Ping-pongozás Framebuffer* computeBuffer[2]; int inputBuffer = 0; // inicializálás computeBuffer[0] = new Framebuffer(width, height, 1); computeBuffer[1] = new Framebuffer(width, height, 1); // iteráció computeBuffer[(inputBuffer + 1) % 2]->setRenderTarget(); shader->enable(); shader->bindUniformTexture(„inputMap”, computeBuffer[inputBuffer]->getColorBuffer(0), 0); fullscreenQuad->render(shader); shader->disable(); computeBuffer[(inputBuffer + 1) % 2]->disableRenderTarget(); inputBuffer = (inputBuffer + 1) % 2;

mmm

 Newton  Hooke

uniform sampler2D inputMap; out vec4 outColor; const float deltat = ; const float deltax = 0.01; const float sqrc = 20.0; void main(void){ vec4 data = texelFetch(inputMap, ivec2(gl_FragCoord), 0); float u = data.x; float v = data.y; float d2u = texelFetch(inputMap, ivec2(gl_FragCoord) + ivec2(-1, 0),0).x + texelFetch(inputMap, ivec2(gl_FragCoord) + ivec2( 1, 0),0).x + texelFetch(inputMap, ivec2(gl_FragCoord) + ivec2( 0, -1),0).x + texelFetch(inputMap, ivec2(gl_FragCoord) + ivec2( 0, 1),0).x - 4 * u; u = u + v * deltat; v = v + sqrc * d2u * deltat; outColor = vec4(u, v, 0.0, 0.0); }

 Hiba IterációHiba x(0)0 dth 2*dt2*h... m*dtm*h

 Stabilizálás  Visszamenő Euler  Crank-Nickolson módszer  Másodrendű Runge-Kutta  Verlet  Lineáris egyenletrendszer

Midpoint közelítés

uniform sampler2D inputMap; out vec4 outColor; const float deltat = ; const float deltax = 0.01; const float sqrc = 20.0; void main(void){ vec4 data = texelFetch(inputMap, ivec2(gl_FragCoord), 0); float u = data.x; float v = data.y; float d2u = texelFetch(inputMap, ivec2(gl_FragCoord) + ivec2(-1, 0),0).x + texelFetch(inputMap, ivec2(gl_FragCoord) + ivec2( 1, 0),0).x + texelFetch(inputMap, ivec2(gl_FragCoord) + ivec2( 0, -1),0).x + texelFetch(inputMap, ivec2(gl_FragCoord) + ivec2( 0, 1),0).x - 4 * u; float um = u + v * deltat / 2.0; float vm = v + sqrc * d2u * deltat / 2.0; outColor = vec4(u, v, um, vm); }

uniform sampler2D inputMap; out vec4 outColor; const float deltat = ; const float deltax = 0.01; const float sqrc = 20.0; void main(void){ vec4 data = texelFetch(inputMap, ivec2(gl_FragCoord), 0); float u = data.x; float v = data.y; float um = data.z; float vm = data.w; float d2u = texelFetch(inputMap, ivec2(gl_FragCoord) + ivec2(-1, 0),0).z + texelFetch(inputMap, ivec2(gl_FragCoord) + ivec2( 1, 0),0).z + texelFetch(inputMap, ivec2(gl_FragCoord) + ivec2( 0, -1),0).z + texelFetch(inputMap, ivec2(gl_FragCoord) + ivec2( 0, 1),0).z - 4 * u; u = u + vm * deltat; v = v + sqrc * d2u * deltat; outColor = vec4(u, v, 0.0, 0.0); }