130 likes | 261 Views
Davy v počítačové grafice. Jakub Fintora. Úvod. Dav Častý fenomén 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
E N D
Davy v počítačové grafice Jakub Fintora
Úvod • Dav • Častý fenomén • 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ů
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í • 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
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