[ ljube @ 18.08.2004. 20:22 ] @
Zdravo, evo par pocetnickih pitanja pa anko neko ima volje da me prosvetli...

Nedavno sam pokusao da kompajliram par directx primjera iz directx sdk, i mislim da sam shvatio ucitavanje x fajlova i pomjeranje po x,y,z osama ali mi nije jasno kako postizu u igrama da likovi pomjeraju ruke, noge i sl.
Da li se koriste neke funkcije za tranformacije mesh-ova ili neso slicno?
Cuo sam da postoje neki 3d animacioni fajlovi ali ne znam nista o tome.
Da li postoje neki besplatni programi sa kojima bih mogao isprobam pravljenje 3d likova?

Pozdrav,
Ljubisa

[ Nothingman @ 18.08.2004. 21:47 ] @
Koliko ja znam postoje dva nacina za animaciju likova(preciznije za animiranje
kompletnog mesha, tj. pomeranje ruku,nogu...):
1. koji si vec sam pomenuo, a to je ucitavanjem iz fajlova velikog broja frame-ova.
Znaci isti princip kao kod 2d animacije, samo sto ovde iz fajla ucitas 3d objekat u razlicitim "pozama" i onda prikazujes jedan frame za drugim i tako stvaras iluziju kretanja. Taj nacin koriste mnoge igre. Na primer quake2 koristi fajlove sa extenzijom md2 i bas se sa tim zezam u zadnje vreme. Stvar izgleda vise nego dobro. Ako te interesuje potrazi dokumentaciju o tom formatu na www.planetquake.com. Tamo ces naci i gomilu odlicnih modela koje mozes da koristis.
2. takozvani skeletal animation. U principu matematicka izracunavanja u realnom vremenu( recimo transformacije koordinatnih sistema za svaki deo tela )... nisam nikad radio neke slozenije stvari na ovaj nacin, ne znam ni koliko se ovo koristi u novijim igricama, ali verovatno je u tome buducnost(a mozda je i sadasnjost ).

Verovatno postoje i drugi nacini, ali o njima neka ti kaze neko ko o tome vise zna.

[ Reljam @ 18.08.2004. 22:27 ] @
Hm, ovo u slucaju 1 nije bas tako: ne prikazuju se key frameovi jedni za drugim, vec se interpolira izmedju njih. Bitno razlicita stvar - jer kada bi se samo prikazivali frejmovi jedni za drugim, dobio bi animaciju od po par fps.
[ Nothingman @ 18.08.2004. 22:54 ] @
U pravu si, ali nisam hteo da mu pominjem interpolaciju da ga ne zbunim previse.
Mislio sam da ce to ionako pokupiti usput ako ga bude citao dokumentaciju o md2 formatu.
Nego kad smo vec kod toga ima jedna stvar koja me interesuje kod interpolacije.
Vecina ljudi je izvodi na sledeci nacin:
neka su v0 i v1 verteksi dva susedna frejma i izmedju njih interpoliramo.
vi = v0*(1-interpolant) + v1*interpolant
gde je interpolant od 0.0 do 1.0.
Znaci ovo prakticno moramo da izracunavamo za svaki verteks u frameu.
Sta bi se desilo ako bi se odlucili da imamo fiksni broj interpolacija? Na primer da zelimo da 50 interpolacija izmedju svaka dva verteksa u susednim frameovima. Zar tada ne bismo mogli da samo jednom na pocetku framea izracunamo (v1-v0)/50
i onda dobijeni rezultat dodajemo na vi u svakom koraku interpolacije na svaki verteks. Tako bismo na 50 frameova imali samo jedno sabiranje po vertexu(plus jedno oduzimanje i deljenje na 50 frejmova) za razliku od one gore formule u kojoj imamo dva mnozenja, sabiranje i dva oduzimanja po vertexu.
Znam da sam u ovome verovatno nesto prevideo, jer da to moze tako verovatno bi se vec neko toga setio... :)

p.s. Moze i bez interpolacije da se dobije mnogo frejmova u sekundi samo sto bi animacija seckala, ili bi morao ljude zaduzeneza grafiku da nateras da ti naprave 10 000 frejmova po objektu :)
Pozdrav

Bojan Bašić: obrisan nepotreban citat

[Ovu poruku je menjao Bojan Basic dana 19.08.2004. u 02:32 GMT]
[ Reljam @ 19.08.2004. 00:05 ] @
To sto si napisao je tako, ali mi ne znamo unapred koliko ce biti koraka izmedju dva frejma: prvo, sami frejmovi nisu vremenski ravnomerno rasporedjeni, vec su stavljeni tamo gde je potrebno da se 'izravna' animacija, a drugo, korak izmedju dva iscrtavanja zavisi od FPSa, tako da ne mozes unapred da kazes da ce to biti 1/50.

E sad, ono sto si nagovestio je da bi mogao da kazes da je vi = v0 + t*(v1-v0), i da onda izracunas v1-v0 za svaki verteks za svaki frejm samo jedanput (stavis tu vrednost u vertex buffer), i da onda animaciju radis samo sa jednim madd-om (vi = v0 + t*dv). Medjutim, na taj nacin moras da za svaki vertex pamtis i jos jedan vektor, ali to nije toliko strasno.

Tako da, da, moguce je dobiti bolje rezultate od prostog lerpa izmedju v0 i v1 :)

Jedini zez u svemu tome je sto taj sistem ne dozvoljava blendovanje animacija (skakanje i trcanje odjedanput), tako da nije primenjiv na moderne igre gde publika ima veca ocekivanja od Quake 2 animacija.
[ Nothingman @ 19.08.2004. 00:30 ] @
Pa da, moja greska je bila u tome sto sam pretpostavio savrsene uslove, to jest da ce korisnik imati dovoljno brzu masinu koja ce prakticno imati snagu za fiksnih 50 fps i da ce joj jos ostati lufta tako da moze da ceka do 1/50 dela sekunde i frejmove iscrtava u ravnomernom intervalu. Ali recimo da sada na nekom Burtonu 2GHZ+ uradim DOS demo u 320*240*256 ti savrseni uslovi bi bili ispunjeni zar ne?
U svakom slucaju hvala ti na odgovoru, sledeci put kad budem nesto radio iskoristicu taj trik koji si mi pokazao.
Btw, da li mozes da mi preporucis neku knjigu u kojoj se mogu pokupiti takve fore(osim Foley-a), ali da je bas dobra, jer te strane knjige su prilicno skupe za moj dzep pa ne bih bas da bacam pare :)
[ Nothingman @ 19.08.2004. 00:33 ] @
Citat:

Jedini zez u svemu tome je sto taj sistem ne dozvoljava blendovanje animacija (skakanje i trcanje odjedanput), tako da nije primenjiv na moderne igre gde publika ima veca ocekivanja od Quake 2 animacija.


Ako moj prvi openGL 3d engine bude bar podsecao na quake2 ja cu biti veoma zadovoljan
A posle cemo da idemo dalje...
[ ljube @ 19.08.2004. 13:04 ] @
Hvala Vam na odgovorima.

Sto se tice licence za upotrebu MD2 formata fajlova, da li moze da se koristi u komercijalnim projektima?

Da li postoji neki 3D editor (bespatan) koji moze da pravi slicne fajlove.

Pozdrav,
Ljubisa
[ Nothingman @ 19.08.2004. 14:31 ] @
Mislim da mozes bez problema da koristis format u komercijalne svrhe. Uostalom on
nema u sebi nista specijalno da bi mogao biti zasticen.
Druga stvar je sto se tice modela koje skines sa neta. Da bi njih koristio komercijalno moras
da pitas autore, mada koliko ja znam ni tu nema vecih problema.
Za neke alate koji mogu biti od pomoci pogledaj na:
www.planetquake.com/polycount/resources/quake2/tools.shtml
[ ljube @ 19.08.2004. 19:38 ] @
Hvala.

To mi je dovoljno da mogu malo da se poigram sa directx-om i 3d grafikom.

Ljubisa
[ yooyo @ 24.08.2004. 13:41 ] @
Hmmm.. a motion capture?

yooyo