.[ ČeskéHry.cz ].
Pohyblivé modely

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



Založen: 28. 07. 2009
Příspěvky: 879

PříspěvekZaslal: 17. leden 2010, 11:58:30    Předmět: Pohyblivé modely Odpovědět s citátem

Jak se řeší pohyblivé modely ve hrách ? Třeba točení kol u aut, vrtule u letadel apod.

Zatím to řeším tak, že pomocí transformační matice hýbu jenom určitou částí modelu (sub-chunkem), ale to mi nepřijde moc efektivní.

A za druhé, pokud mám model, který má hodně dílů (třeba 20) - tělo, okna, kola, dveře, detaily.... Jak se s takovýmto modelem pracuje ? Sloučí se všechno do jednoho dílu (ovšem jak pak přepínat textury / materiály / barvy) nebo se přistupuje k problému nějak jinak.
Nikde jsem moc práci s modely v DirectX scéně nenašel
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky  
ICQ
]semo[



Založen: 29. 07. 2007
Příspěvky: 1526
Bydliště: Telč

PříspěvekZaslal: 18. leden 2010, 11:05:37    Předmět: Odpovědět s citátem

K první otázce: Děláš to správně, ovládá se to transformační maticí. Pokud bys nechtěl mít model rozdělenej z nějakých důvodů na více submeshů, můžeš hýbat vybranýma vertexama ve vertex shaderu. Vybereš je nějakým dalším atributem vertexu (případně podle texturového coordinátu). Ale výkon bude stejnej a objem dat větší, jen ušetříš těch pár drawcallů (ale i to se může někdy hodit). Zůstaň u matice.

K tomu druhému: Je lepší mít seskupené vše co lze seskupit. Většinou se to dělá tak, že poučíš grafiky, co je dobré a co není. Dobré je používat co nejméně materiálů a tím pádem i co nejméně objektů. Tak třeba auto: jeden materiál na kastli, jeden na sklo, jeden na gumy. Samozřejmě například dveře nebudeš mít ve stejném meshi jako kastli, abys s nima mohl hýbat, ale můžou mít stejný materiál.
V enginu pak můžeš kreslit podle materiálu:
1) nahodíš materiál
2) vykreslíš všechy objekty v pohledu co ho používají (kastle, všechny dveře)

Osvícený grafik je půlka performance...
_________________
Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu  
perry



Založen: 28. 07. 2009
Příspěvky: 879

PříspěvekZaslal: 18. leden 2010, 15:17:43    Předmět: Odpovědět s citátem

A k čemu se používá kostra modelu. Někdo mi radil, ať dělám pohyb pomocí kostry (kosti a tělo), ale na netu jsem nic pořádně nenašel a údajně je to nějaký složitější.

Btw. s modely mám problém, protože v ničem modelovat neumím. Mám modely stažené z webu, jenomže tam je pak problém, že jsem podřízen tomu, že mají extrémní množství detailů, hodně sub-chunků. Snažil jsem se to pospojovat v 3D Maxu, ale nějak bez výsledku :-/
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky  
ICQ
Ladis



Založen: 18. 09. 2007
Příspěvky: 1537
Bydliště: u Prahy

PříspěvekZaslal: 18. leden 2010, 15:48:43    Předmět: Odpovědět s citátem

Kostra modelu: http://en.wikipedia.org/wiki/Skeletal_animation
Mesh je rozdělen na části, a ty mají vlastní transformační matice (bývají relativně vůdči rodičovské "kosti"). Tak můžeš třeba hýbat rukou postavy. Na netu pravděpodobně najdeš jen obecné povídání nebo konkrétní implementaci, která ti nemusí sedět.

S těmi modely z internetu není chyba na tvé straně, to je prostě daň za jejich používání. Třeba zjistíš, že je ve výsledku jednodušší se základní modelování naučit sám, i kdyby šlo o "ilustrační" modely o 20-100 polygonech, které pak případně vyměníš za hezčí od později získaného grafika (podle mě je rozdíl sehnat grafika na hru, ze které nic není, a na hru, která je plně funkční).
_________________
Award-winning game developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu  
]semo[



Založen: 29. 07. 2007
Příspěvky: 1526
Bydliště: Telč

PříspěvekZaslal: 18. leden 2010, 16:36:13    Předmět: Odpovědět s citátem

Kosti jsou vhodný na postavy a obecně modely, kde chceš měnit tvar (ohlá ruka, atp. ).

Pospojovat modely v maxu je snadný. Označíš jeden objekt, dáš ruhým tlačítkem Convert to Editable Poly (pokud už neni) a v modify panelu (viz help) zvolíš attach. Pak klikáš na to co chceš připojit.

_________________
Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu  
perry



Založen: 28. 07. 2009
Příspěvky: 879

PříspěvekZaslal: 18. leden 2010, 19:52:35    Předmět: Odpovědět s citátem

Díky... už se mi to podařilo spojit v tom Maxu... Výkon se zvednul Smile

Ještě dotaz... dělá se transformační matice pro každý chunk ? Zatím to tak mám, ale nevím jestli je ideální pořád násobit matice (když zase udělám ovšem pro statické části jednu, tak pak začne být "bordel" v kódu a přestane být univerzální.. víceméně se mi vztahuje potom model renderer na jeden model, což i taky nepřijde ideální)
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky  
ICQ
]semo[



Založen: 29. 07. 2007
Příspěvky: 1526
Bydliště: Telč

PříspěvekZaslal: 19. leden 2010, 11:13:45    Předmět: Odpovědět s citátem

Pro každý ten chunk stejně zavádíš nějakou transformační matici, ne? Je jen Otázka kde je vezmeš a jak se počítají. Já tyhle výpočty do rendru zásadně netahám, renderovatelný objekty u mě mají jen nějakou funkci GetWorldMatrix(). Matice se reálně berou a počítají ve SceneTree. O tom tady už bylo jedno téma:
http://www.ceske-hry.cz/forum/viewtopic.php?t=1947&highlight=scene+graph
_________________
Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory
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 -> 3D API / 3D Enginy Č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