Davy v počítačové grafice Jakub Fintora
Úvod Dav Častý fenomén Částicový systém Vizualizace simulací (evakuace, nepokoje,…) Zábavní průmysl Částicový systém Animované nebo statické částice Rychlost vs. Rozmanitost
Reprezentace částice Vertex buffer Pozice Normála UV souřadnice Údaje pro skeletální animace Index buffer – spojení vrcholů do sítě
Skeletální animace Dynamika částice Skeleton - hierarchie Kloub Klíčové snímky BVH – Biovision Hierarchy Zdroj: http://doc.gold.ac.uk/~mas02mg/IntroToAV/lectures/skeleton.png
MakeHuman makehuman.org Otevřený kód (Python + C) Parametrické modelování Princip Jedna základní trojúhelníková síť Změny v podobě vektorů posunů konkrétních vrcholů základní trojúhelníkové sítě Export – OBJ, COLLADA Zdroj: http://makehuman.org/sites/mhnew.jwp.se/files/mhlogo3.png
Navržené řešení Použití dat exportovaných z MakeHuman Převedení dat ze souborů do datových struktur přístupných grafickou kartou Generování davu Vykreslování davu Implementace: SPA framework + DirectX
Vykreslování davu Shadery Geometry instancing Řešení skeletálních animací Přečtení pohybových dat na základě adres z vertex bufferu Složení dílčích transformačních matic kloubů Vytvoření výsledné transformační matice, vynásobením dílčích matic vahami a sečtením Umístění ve scéně Zobrazení s odlišnými barvami pleti
Převedení do datových struktur Výsledkem je: Vertex buffer Index buffer Hierarchie a proporce kostry Textura s pohybovými daty Pole sémantických údajů
Souvislost datových struktur
Generování davu Druhý vertex buffer (instance buffer) Náhodně vygenerované atributy Startovní klíčový snímek Rozestupy Odstín pleti
Výsledky Nejnáročnější částí Desynchronizace animací skládání transformací vertexů. pokles rychlosti v průměru o 80% Desynchronizace animací počet různých startovních snímků animace = počet všech klíčových snímků. Odstíny barvy pleti Počet možných kombinací -2678 Podle pravidla: d = 15% - 20% rozsahu jednoho barevného kanálu r = náhodné číslo v rozsahu jednoho barevného kanálu b = r – d g = (r + b)/2
Vykreslený dav
Závěr Data z projektu MakeHuman jsou vhodná Je třeba využít HW akcelerace Geometry instancing Výpočetně nejnáročnější částí – skeletální animace