Geometry instancing Szécsi László. copy-paste-rename gg009-Gui folder vcxproj, filters átnevezés solution/add existing project rename project working.

Slides:



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

3 5 6 Application Services Deployment Services Databinding USER INTERFACE SERVICES XAML Accessibility Property System Input & Eventing BASE SERVICES.
Lua script Szécsi László
GPU Szirmay-Kalos László.
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.
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.
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 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.
Socket programozás Példák
ANY u WHERE u : seq(MININT..MAXINT) & size(u) = size(s) & #f.(f : 1..size(s) >->> 1..size(s) & !j.(j : 1..size(s) => s(f(j)) = u(j))) & !i.(i : 1..size(s)-1.
ART és ARTMAP hálózatok működését bemutató animációk
VFP xBase adatkezelés - munkaterületek - DML - DDL - navigáció - eljárások, függvények - vezérlési szerkezetek - változók - képernyő IO - mintaprogram.
WEB Technológiák WEB-DB és XML ME Általános Informatikai Tsz. dr. Kovács László.
Multimédiás programok készítése Macromedia Director fejlesztői környezetben 4. előadás Készítette: Kosztyán Zsolt
Service Manager.. Remedy Action Request System OpenView Operations.
Számítógépes grafika 3. gyakorlat.
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.
Segédlet vizuális programozáshoz Kovács László
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.
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.
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.
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:
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ó.
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.
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.
Transzformációk Szirmay-Kalos László. Transzformációk (x,y) (x’,y’) = T(x,y) l Tönkre tehetik az egyenletet l Korlátozzuk a transformációkat és az alakzatokat.
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
OO framework, Egg util library László Szécsi. Projektek nem osztoznak semmilyen kódon – DXUT mindegyikben – effect betöltés, mesh betöltés, GUI mindegyikbe.
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 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),
Óragének (és a melatonin)
Jeni László Attila Klár Gergely
 OpenCL platform  Számító eszközök  OpenCL kontextusok  Parancs sorok  Szinkronizáció  Memória objektumok  OpenCL programok  OpenCL függvények.
2. gyakorlat DirectX 2007/2008 tavasz Klár Gergely
ELTE-IK, Számítógépes grafika 2./haladó 2. gyakorlat Klár Gergely.
DECENT PROJEKT D eveloping E mployees C apacity through E uropean and N ational level T rainings.
Képek, képfeldolgozás Szirmay-Kalos László.
Szécsi László 3D Grafikus Rendszerek 4. labor
Vizualizáció és képszintézis
Szécsi László 3D Grafikus Rendszerek 14. előadás
GPGPU – CUDA 2..
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 kiterjesztések (extensions)
Direct3D DirectCompute
OO framework, Egg util library László Szécsi
GraphGame gg001-Triangle
Environment mapping Szécsi László
Előadás másolata:

Geometry instancing Szécsi László

copy-paste-rename gg009-Gui folder vcxproj, filters átnevezés solution/add existing project rename project working dir: $(SolutionDir) Project Properties/Configuration Properties/Debugging/Command Arguments --solutionPath:"$(SolutionDir)" --projectPath:"$(ProjectDir)" build, run

#include "Mesh/Instanced.h"

index buffer + vertex bufferek + instance bufferek + elemleírás konstruktor összebuherálja az egyes bufferekhez kapott elemleírásokat draw metódus context->IASetIndexBuffer(indexBuffer, indexFormat, 0); context->IASetVertexBuffers(0, nVertexBuffers, vertexBuffers, vertexStrides, zeros); context->DrawIndexedInstanced(nIndices, nInstances, 0, 0, 0);

using namespace Egg::Math; Egg::Math::float4x4 modelMatrices[200]; for(int iInstance=0; iInstance<200; iInstance++ ) modelMatrices[iInstance] = float4x4::translation( float3::random(0, 20) ).transpose();

D3D11_INPUT_ELEMENT_DESC modelMatrixElements[4] = { { "INSTANCEMODEL", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 1, 0 * sizeof(float4), D3D11_INPUT_PER_INSTANCE_DATA, 1}, { "INSTANCEMODEL", 1, DXGI_FORMAT_R32G32B32A32_FLOAT, 1, 1 * sizeof(float4), D3D11_INPUT_PER_INSTANCE_DATA, 1}, { "INSTANCEMODEL", 2, DXGI_FORMAT_R32G32B32A32_FLOAT, 1, 2 * sizeof(float4), D3D11_INPUT_PER_INSTANCE_DATA, 1}, { "INSTANCEMODEL", 3, DXGI_FORMAT_R32G32B32A32_FLOAT, 1, 3 * sizeof(float4), D3D11_INPUT_PER_INSTANCE_DATA, 1} }; Egg::Mesh::InstanceBufferDesc instanceBufferDesc; instanceBufferDesc.elements = modelMatrixElements; instanceBufferDesc.nElements = 4; instanceBufferDesc.instanceStride = sizeof(float4x4); instanceBufferDesc.instanceData = modelMatrices;

Egg::Mesh::Instanced::P instancedMesh = Egg::Mesh::Instanced::create( device, 200, &instanceBufferDesc, 1, indexedMesh); ID3DX11EffectPass* basicPass = effect- >GetTechniqueByName("instanced")- >GetPassByName("instanced"); Egg::Mesh::Material::P envmappedMaterial = Egg::Mesh::Material::create(basicPass, 0); shadedMesh = binder- >bindMaterial(envmappedMaterial, instancedMesh);

struct IaosInstanced { float4 pos: POSITION; float3 normal : NORMAL; float2 tex : TEXCOORD; float4x4 instanceModelMatrix: INSTANCEMODEL; }; VsosTrafo vsInstanced(IaosInstanced input) { VsosTrafo output = (VsosTrafo)0; output.worldPos = mul(input.pos, input.instanceModelMatrix); output.pos = mul(output.worldPos, modelViewProjMatrix); output.normal = mul( float4(input.normal.xyz, 0.0), input.instanceModelMatrix); output.tex = input.tex; return output; } #9.0 modellel nem kéne szorozni, mert ugye már megvolt model inverse transposed csak akkor egyezik meg a modellel, ha csak eltolás+forgatás+izometrikus skálázás van

technique11 instanced { pass instanced { SetVertexShader ( CompileShader( vs_5_0, vsInstanced() ) ); SetPixelShader( CompileShader( ps_5_0, psEnvMapped() ) ); } #9.0

instancedMesh tagvaltozóba – animateből elérjük, releaseResourcesban reset animate – instance buffer lekérése – device->GetImmediateContext – instance buffer mappelése – feltöltése időfüggő (de nem random!) adattal – unmap – context release