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ó.

Slides:



Advertisements
Hasonló előadás
Ajánlott telepítési verziók
Advertisements

RESTful Web Service tesztelése
 Árnyalási egyenlet  Saját emisszió  Adott irányú visszaverődés.
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ó.
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.
Socket programozás Példák
2010 október 2651 kp. Vizsga 2. feladata
Ág és korlát algoritmus
Borland C/C++ mintapéldák tömbökre
Infokommunikációs rendszerek 12
Infokom. rendsz. 11. előadás nov Kommunikációs rendszerek alapjai 11. előadás Rádiós adathálózatok Bluetooth, ZigBee, WiFi, WiMAX, Takács.
Infokommunikációs rendszerek 11
Just in Time.
Hullámok visszaverődése
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 ◦
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.
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érfogatvizualizáció
Motor IIII. Vezérlés Szécsi László. Letöltés diák: //l09-engine4.ppt.
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
DirectX9 empty project Szécsi László. Visual Studio Első indításkor C++ választása.
Motor I. Scene graph XML Rendering Szécsi László.
Environment mapping Szécsi László. Új osztály: Lab3EnvMap copy&paste: Lab2Trafo.h -> Lab3EnvMap.h copy&paste: Lab2Trafo.cpp -> Lab3EnvMap.cpp copy&paste:
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ó.
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)\
Sugárkövetés: ray-casting, ray-tracing
Térfogatvizualizáció
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.
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
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.
Készült az ERFP – DD2002 – HU – B – 01 szerzősésszámú projekt támogatásával Chapter 1 / 1 C h a p t e r 1 Introduction.
 Farkas György : Méréstechnika
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
ELTE-IK, Számítógépes grafika 2./haladó 2. gyakorlat Klár Gergely.
Hullámok.
MECHANIKAI HULLÁMOK A 11.B-nek.
Informatikai eszközök a virtuális valóság szolgálatában Hapák József ELTE-IK X. Eötvös Konferencia.
Az iskolai dokumentumok elérhetősége
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
gg004-Mesh project copy-paste-rename gg002-App folder
Alapok Model betöltés Anyagjellemzők Fényforrások Shaderek
World map.
Environment mapping Szécsi László
Előadás másolata:

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ó csepp pályája hullám terjedése gerinc völgy

Munkamenet -letöltés: -ripples normal map -kell egy nagy sík Mesh -terrain mesh pont jó lesz -ha kicsit csalunk vele -erre kell egy ShadedMesh egy új technikával -ocean.fx

XML <CubeTexture name="environmentCubeTexture" file="fullNoon.dds" /> <Texture name="normalMap" file="waves2.dds" />

XML <Entity name="ocean" shadedMesh="ocean" />

új effect: ocean.fx engineCore.fx-be #include ocean.fx

technique (minden más ez elé jön) technique ocean { pass ExamplePass { CullMode = CW; VertexShader = compile vs_3_0 vsOcean(); PixelShader = compile ps_3_0 psOcean(); }

uniform változó float time=0;

hullámfüggvények struct Wave{ floatwavelength; floatamplitude; float3direction; }; #define NWAVES 4 Wave wave[NWAVES] = { {65.0f, 1.0f, float3(0.98, 0, 0.17) }, {43.5f, 0.6f, float3(0.98, 0, -0.17) }, {22.0f, 0.4f, float3(0.934, 0, 0.342) }, {99.0f, 2.0f, float3(0.934, 0, ) } };

segédfüggvény float3 evaluateWaveWithDerivative(Wave w, float phase, out float3 derivative){ float2 offset; sincos(phase, offset.x, offset.y); offset *= -w.amplitude; derivative = (w.direction + float3(0, 1, 0)) * offset.yxy; float3 displacement = (w.direction - float3(0, 1, 0)) * offset.xyx; return displacement; } hullámparaméterek φ egy hullám miatti eltolás egy hullám miatti parciális deriváltak

input-output struct OceanInput { float4 pos: POSITION; }; struct OceanOutput { float4 pos: POSITION; float3 normal: NORMAL; float3 worldPos: TEXCOORD0; float3 tangent: TEXCOORD1; float3 binormal: TEXCOORD2; float2 tex: TEXCOORD3; };

vertex shader eleje OceanOutput vsOcean(OceanInput input) { OceanOutput output = (OceanOutput)0; //csalás következik input.pos.y = 0; // terrain lapítás input.pos.xz *= 0.1; //kicsi háromszögek kellenek

hullámok hatásainak összegzése float3 posShift = 0;//eltolás float3 du = float3(1, 0, 0);//parciális u szerint float3 dv = float3(0, 0, 1);//parciális v szerint for (int i=0;i<NWAVES;i++) { float kdotp = dot(input.pos, wave[i].direction); float phase = 6.28 / wave[i].wavelength * ( kdotp + time * sqrt( * wave[i].wavelength)); posShift += evaluateWaveWithDerivative(wave[i], phase, da); float da *= 6.28 / wave[i].wavelength; du += da * wave[i].direction.x; dv += da * wave[i].direction.z; }

pozíció módosítás input.pos.xyz += posShift; output.worldPos = mul(input.pos, modelMatrix); output.pos = mul(input.pos, modelViewProjMatrix); output.tex = input.pos.xz;

normálvektor a parciális deriváltakból output.binormal = normalize(du); output.tangent = normalize(dv); output.normal = normalize(cross(dv,du));

vertex shader vége return output; }

pixel shader float4 psOcean(OceanOutput input) : COLOR0 { // ideiglenes kód float3 worldNormal = normalize(input.normal); float3 viewDir = -normalize(eyePosition - input.worldPos); float3 reflDir = reflect(viewDir, worldNormal); return texCUBE(environmentCubeSampler, reflDir) * float4(0.5, 0.6, 0.8, 1.0) * input.normal.y; }

próba hullámpala

mozgás time beállítása void EngineCore::animate(double dt, double t) { effect->SetFloat("time", t); …

próba mozog

normal mapping texture normalMap; sampler2D normalMapSampler = sampler_state{ texture = ; MinFilter = LINEAR; MagFilter = LINEAR; MipFilter = LINEAR; AddressU = Wrap; AddressV = Wrap; };

pixel shader half4 t0 = tex2Dlod(normalMapSampler, float4(input.tex * *0.07 * float2(1,0) * time * float2(-1,-1), 0, 0)); half4 t1 = tex2Dlod(normalMapSampler, float4(input.tex * *0.057 * float2(0.86, 0.5) * time * float2(1,-1), 0, 0)); half4 t2 = tex2Dlod(normalMapSampler, float4(input.tex * *0.047 * float2(0.86, -0.5) * time * float2(-1,1), 0, 0)); half4 t3 = tex2Dlod(normalMapSampler, float4(input.tex * *0.037 * float2(0.7, 0.7) * time, 0, 0)); half3 N = (t0 + t1 + t2 + t3).xzy * ; N.xz *= 2.0; N = normalize(N); half3x3 m; m[0] = input.tangent; m[1] = input.normal; m[2] = input.binormal; half3 worldNormal = mul(N, m); worldNormal = normalize(worldNormal); //float3 worldNormal = normalize(input.normal);

próba fodrok

mivel lehet javítani? -Fresnel visszaverődés -meredeken belátni a víbe -lapos szögben tükör -víz alatti szín -végtelen óceán -a háló nézetfüggő elhelyezése -csúcspontok elmozdítása világkoordináta alapján -habtextúra