Environment mapping Szécsi László

Slides:



Advertisements
Hasonló előadás
GraphGame gg001-Triangle
Advertisements

Lua script Szécsi László
Sugárkövetés: ray-casting, ray-tracing
3D képszintézis fizikai alapmodellje
Mesh betöltés, kirajzolás Szécsi László. dx11-ben nincs – játékfejlesztők írnak maguknak úgyis DXUT-ban van – CDXUTSDKMesh – csak sdkmesh formátumot tud.
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.
BMEEPAG0202 CAD és építészinformatika / 2006 őszi félév 1 2D-3D számítógépes grafika BME Építészmérnöki Kar Építészeti Ábrázolás Tanszék Előadó: Batta.
Készítette: Keszthelyi Zsolt
Egyszerű webes alkalmazás fejlesztése
Fejlett grafikai algoritmusok Megvilágítási modellek
Számítógépes grafika 5. gyakorlat. Előző órán Textúrázási módok Pixel shader használata.
Segédlet vizuális programozáshoz Kovács László
Térfogatvizualizáció
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:
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.
Rendering pipeline Ogre3D
Kezdeti teendők Letöltés: CharacterModellingBase.zip Blender3D futtatása headBase.blend betöltése.
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.
Megjelenítő-motor, színtér- menedzsment Szécsi László.
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.
Jeni László Attila Klár Gergely
2. gyakorlat DirectX 2007/2008 tavasz Klár Gergely
2. Gyakorlat Zalatnai Csongor
5. gyakorlat Fleiner Rita.
Vizualizáció és képszintézis Sugárkövetés (Dart + GLSL) Szécsi László.
Képek, képfeldolgozás Szirmay-Kalos László.
Számítógépes grafika DirectX 7. gyakorlat. Emlékeztető Múlt órán mesheket és transzformációkat használtunk Most primitívkirajzoláshoz nézünk meg egy hasznos.
Vizualizáció és képszintézis Térfogati textúrák kezelése (Dart + GLSL) Szécsi László.
Vizualizáció és képszintézis
Térfogati illumináció
Global Illumination.
Lighting III.
A grafikus hardware programozása
Szécsi László 3D Grafikus Rendszerek 4. labor
Unity, Anyagok, megvilágítás
Vizualizáció és képszintézis
SAS Base bevezetés Csicsman József
Szécsi László 3D Grafikus Rendszerek 10. előadás
Vizualizáció és képszintézis
Szécsi László 3D Grafikus Rendszerek 14. előadás
Vizualizáció és képszintézis
Post Processing effektek
gg004-Mesh project copy-paste-rename gg002-App folder
Alapok Model betöltés Anyagjellemzők Fényforrások Shaderek
Kamera, 3D, transzformációk Szécsi László
OpenGL II.
Material+ kioptimalizált uniformok
Sw2 PhysX.
Szécsi László 3D Grafikus Rendszerek 11. előadás
OpenGL V.
World map.
Sugármetszés implicit szintfelülettel
Direct3D DirectCompute
OO framework, Egg util library László Szécsi
GraphGame gg001-Triangle
Mesh from file, OrthoCamera, PerspectiveCamera
Előadás másolata:

Environment mapping Szécsi László g008-EnvMap Environment mapping Szécsi László

gg008-EnvMap project copy-paste-rename gg007-Texture folder vcxproj, filters átnevezés solution/add existing project build, run

DDSTextureLoader DirectXTex-ből nincs külön project csak két file DDSTextureLoader.h DDSTextureLoader.cpp tegyük be a gg008-Envmap projektbe simán

Betöltés

psEnvmapped.hlsl cbuffer perFrame { float4 eyePos; // plusz fények, stb. } TextureCube envTexture; float4 psEnvMapped(VsosTrafo input) : SV_Target { // rayDir számítása worldPos és eyePos között // .xyz kell, normalizálni kell // reflectionDir számítása // belefelé mutató rayDir kell (-viewDir) return 0.5 * envTexture.Sample(linearSampler, reflectionDir) + + 0.5 * kdTexture.Sample(linearSampler, input.tex);

Game.cpp #60 std::wstring envfile = Egg::UtfConverter::utf8to16( App::getSystemEnvironment() .resolveMediaPath("cloudynoon.dds")); Egg::ThrowOnFail("Could not create cube map texture and/or SRV.", __FILE__, __LINE__) ^ DirectX::CreateDDSTextureFromFile( device.Get(), envfile.c_str(), envTexture.GetAddressOf(), envSrv.GetAddressOf()); material->setShaderResource( Egg::Mesh::ShaderStageFlag::Pixel, 0, envSrv);

Env map tükröződés kész

Látsszon a környezet a háttérben full-viewport quad új mesh Mesh::Indexed::createQuad() minden pixel olyan színű amilyen irányban látszik vsQuad psBackground

#60 Game.h Egg::Mesh::Shaded::P backgroundMesh;

quad.hlsli struct IaosQuad { float4 pos: POSITION; float2 tex: TEXCOORD0; }; struct VsosQuad float4 pos: SV_POSITION; float2 tex: TEXCOORD0; float3 rayDir: TEXCOORD1;

vsQuad.hlsl #11.1 cbuffer perObject { // a többi row_major float4x4 rayDirMatrix; }; VsosQuad vsQuad(IaosQuad input) { VsosQuad output = (VsosQuad)0; output.pos = input.pos; float4 hWorldPosMinusEye = mul(input.pos, rayDirMatrix); hWorldPosMinusEye /= hWorldPosMinusEye.w; output.rayDir = hWorldPosMinusEye.xyz; output.tex = input.tex; return output; }

#11.1 psBackground.hlsl float4 psBackground(VsosQuad input) : SV_Target { return envTexture.Sample(linearSampler, input.rayDir); }

Részfeladatok (zsiráf mintájára) Mesh::Indexed::createQuad() shaderek betöltése anyag létrehozása input layout kérése shaded mesh létrehozása konstans buffer, shader source view bekötése a materialba új elem a konstansbufferbe: rayDirMatrix vagy új konstansbuffer, amelyik tetszik minden frameben CB feltöltése

Háttér kész