Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Vizualizace částicových systémů Marek Gayer Computer Graphics Group Department of Computer Science and Engineering Faculty of Electrical.

Podobné prezentace


Prezentace na téma: "Vizualizace částicových systémů Marek Gayer Computer Graphics Group Department of Computer Science and Engineering Faculty of Electrical."— Transkript prezentace:

1 Vizualizace částicových systémů Marek Gayer xgayer@fel.cvut.cz Computer Graphics Group Department of Computer Science and Engineering Faculty of Electrical Engineering of CTU

2 2 Cíle Vizualizace pro obecné 3D částicové systémy Zvláštní zřetel na potřeby vizualizace spalovacích procesů Atributy – souřadnice, velikost a barva bodu Úplná nezávislost na datových typech Rychlost a stabilita Možnost použít moduly pro výstup systému (OpenGL, zápis na disk, obrázky a animace) Koncepce - nadstavba knihovny MGLMGL

3 3 Postup řešení Prozkoumání zdrojových kódů jednoduchých částicových systémů na internetu Rozšíření a doplnění vybraného stávajícího systému, nebo vytvoření zcela nového Integrace do knihovny MGL Optimalizace pro OpenGL extense Provedení testů na jednoduchých příkladech

4 4 Výsledky Zpracoval jsem okolo 10 particle systémů: Particle systém API – profesionáĺní systém www.cs.unc.edu/~davemc/Particle/ www.cs.unc.edu/~davemc/Particle/ [ f l o w ] animation software www.reptilelabour.com www.reptilelabour.com nVidia Particle Systems Demo http://www.nvidia.com http://www.nvidia.com Shammi Particle system http://cgl.bu.edu/GC/shammi/ http://cgl.bu.edu/GC/shammi/

5 5 Výsledky Tom Valesky's – simulace explozí http://patriot.net/~tvalesky/752/ http://patriot.net/~tvalesky/752/ Nehe OpenGL tutorials – Lesson 19 http://nehe.gamedev.net/ http://nehe.gamedev.net/ J. Dobry – Triangle speeds performance http://home.zcu.cz/~jdobry http://home.zcu.cz/~jdobry GISMOS – molekulární P.S. http://garm.teokem.lu.se/gismos/ http://garm.teokem.lu.se/gismos/ Designing and Implementing Particle Systems in OpenGL - Trinity College Dublin www.insa-lyon.fr/People/AEDI/tprucher/body/ www.insa-lyon.fr/People/AEDI/tprucher/body/

6 6 Výsledky Topics In Computer Graphics Winter 1996 Particle Systems www.mdc.net/~mrz5149/particle.html www.mdc.net/~mrz5149/particle.html Thorn Screensaver 1.1 www.acc.umu.se/~kegie/ www.acc.umu.se/~kegie/

7 7 Výsledky – systém MPS Vizualizace řádově desetitisíců částic Systém nabízí pro vizualizaci body, trojúhelníky, čtverce nebo úsečky Využívá vykreslování OpenGL elementů a polí a extensí pro jejich zamykání Celkem 8 různých metod vykreslování Atributy – pozice, barvy, vektor rychlosti Nejlepší výsledky jsou dosahovány prostým kreslením bodů nebo úseček

8 8 Výsledky – systém MPS Lze nastavit velikost pro všechny elementy Lze snadno rozšířit přidáním vlastních funkcí – např. pro zápis na disk, obrázky, … Snadné nastavení parametrů – ukazatelů polí v jazyce C - pomocí funkcí modulu Pro jednoduché GUI používá knihovnu MGL Testoval jsem na jednoduchém příkladě http://www.gayer.ws/en/projects/mps/

9 9 Obrazovka ukázkového příkladu

10 10 Rychlosti vykreslování v rámcích/s Vykreslování pomocí OpenGL vektorových polí, elementů a zamykání příliš nezrychluje 50 000 č PLTQPEPAPELPAL ================================================= Celeron 4131086510101010 S3 Savage 41587615-14- Matrox G20023141089221313 GeForce 23015131134343434 TNT 2 PCI3510141125392122 Všechny částice byly před měřením rychlosti vizualizace předpočítány a jejich parametry byly uloženy do příslušných polí požadovaných systémem MPS

11 11 Systém MPS – soubor mps.h typedef float mpsVectorsType [3]; typedef float mpsDsType [3]; typedef float mpsColorsType [4]; #define MPS_POINTS 0 #define MPS_LINES 1 #define MPS_TRIANGLES 2 #define MPS_QUADS 3 #define MPS_POINTELEMENTS 4 #define MPS_POINTARRAYS 5 #define MPS_POINTELEMENTSLOCKED 6 #define MPS_POINTARRAYSLOCKED 7 #define MPS_DRAWMETHODMAX 8

12 12 Systém MPS – soubor mps.h extern float mpsPointSize; extern float mpsMaxPointSize; void mpsSetupPointSize (float size); void mpsInit (void); void mpsSetupVector (float *vector); void mpsSetupD (float *d); void mpsSetupColors (float *colors); void mpsSetupLength (int length); char *mpsGetMethodName (int method); void mpsDraw (int method);


Stáhnout ppt "Vizualizace částicových systémů Marek Gayer Computer Graphics Group Department of Computer Science and Engineering Faculty of Electrical."

Podobné prezentace


Reklamy Google