Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
ZveřejnilAmálie Němečková
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);
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.