.[ ČeskéHry.cz ].
Animace postav pomoci textury

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Grafika
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
Manox



Založen: 30. 07. 2007
Příspěvky: 140
Bydliště: Brno

PříspěvekZaslal: 22. září 2011, 15:57:17    Předmět: Animace postav pomoci textury Odpovědět s citátem

Ahoj,

upravuju teď animační systém a přemýšlím, že bych jej předělal celý. Programuju v c# a XNA a rád bych, aby hra běžela i na Xboxu360. Tam je ale omezení na počet maticí, které se dají poslat do shaderu a to asi přibližně na 50. Naše modely ale mají kostí asi 70, musí se dělit do dvou meshu. Doteď jsem to tak měl, ale předělal jsem to trochu a vyhovovalo by mě, mít to vše při sobě. Našel jsem návod na webu NVidia jak se to dá udělat pomocí textury. Vypadá to docela dobře a teď váhám jestli to předělat na ten systém. Nemáte s tím někdo zkušenosti ? Nějaké výhody/nevýhody ?

http://http.developer.nvidia.com/GPUGems3/gpugems3_ch02.html

Pokud jsem to pochopil, jede to asi až od SM 3.0 což by pořád nemuselo až tak vadit, na Xboxu to jde.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
nou



Založen: 28. 07. 2007
Příspěvky: 1051

PříspěvekZaslal: 22. září 2011, 20:42:53    Předmět: Odpovědět s citátem

hm a taka vec ako uniform buffer object pod XNA nie je? i ked je mozne ze na to je treba SM4
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Manox



Založen: 30. 07. 2007
Příspěvky: 140
Bydliště: Brno

PříspěvekZaslal: 22. září 2011, 20:44:50    Předmět: Odpovědět s citátem

Obavam se prave, ze uniform buffer neni na Xboxu a nejsem si jisty, jestli je vubec ve SM 3.0 co vyuziva posledni XNA
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
nou



Založen: 28. 07. 2007
Příspěvky: 1051

PříspěvekZaslal: 22. září 2011, 21:02:38    Předmět: Odpovědět s citátem

podla tohto http://msdn.microsoft.com/en-us/library/windows/desktop/ee416429%28v=vs.85%29.aspx to vyzera ze to potrebuje DX10 HW teda SM4
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Manox



Založen: 30. 07. 2007
Příspěvky: 140
Bydliště: Brno

PříspěvekZaslal: 22. září 2011, 21:20:23    Předmět: Odpovědět s citátem

Jenze to neni XNA, ktere je vazane na Xbox (a nove i Windows Phone 7) a tudiz DX 10 ani lepsi nepodporuje. A shadery ma max 3.0 a nejake rozsireni na Xbox
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
pcmaster



Založen: 28. 07. 2007
Příspěvky: 1827

PříspěvekZaslal: 23. září 2011, 09:06:27    Předmět: Odpovědět s citátem

No a aky je teda zasadny rozdiel medzi posielanim tych matic cez nejake konstanty alebo v texture? Teda okrem toho, ze do toho prveho sa nezmestis a to druhe vyzera fpoho? Very Happy
_________________
Off-topic flame-war addict since the very beginning. Registered since Oct. 2003!
Interproductum fimi omne est.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Manox



Založen: 30. 07. 2007
Příspěvky: 140
Bydliště: Brno

PříspěvekZaslal: 23. září 2011, 11:02:32    Předmět: Odpovědět s citátem

Textura projde, protoze neni v uniform, ktere jsou omezene. Nicmene tady je to mysleno jinak. Ta animace je ulozena v texture pred spustenim renderovaci smycky a pak jen rikas jaky snimek pouzit. Nevytvari se v kazdem kroku. Aspon tak to chapu, takze nemusis nic updatovat na CPU, zadne matice, jen ktery snimek pouzit.

Nakonec to ale asi poresim jinak. Zkousim podle navodu predelat system, kdy se neposilaji matice, ale dualquaternion coz je 2x4 float misto 4x4 float matice. Tim se posune i omezeni na priblizne 100 kosti, coz uz mi nevadi a hrave se do toho vlezou i nase postavy Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 23. září 2011, 16:42:25    Předmět: Odpovědět s citátem

Quaternion jsem jednou kodoval i do čtyřech bajtů (každý byl signed normalized, takže R8G8B8A8_SNORM). Trochu to skákalo, ale použít se to dalo. Když byl objekt na obrazovce dostatečně malý, nešlo to poznat. Důvod? Instancing: mohl jsem do kostantní paměti narvat opravdu velké množství transformací. To byl DX9 hw, takže tam jiná možnost asi ani nebyla.

Dneska bych použil nějaké chytřejší pakování. R11G11B10_SNORM by bylo lepší. Do toho se krásně uloží normalizovanej quaternion Q=(x,y,z,w) jako RGB=Q.xyz. Q.w se dá dopočítat z Q.xyz. Pokud by Q.w mělo být záporné, pošlu do shaderu -Q, tím si zajistím, že Q.w bude vždy kladné (jinak by to z Q.xyz nešlo spočítat).
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Grafika Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna