View previous topic :: View next topic |
Author |
Message |
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Sun Mar 16, 2008 11:27 am Post subject: ātruma palielināšana un delta time |
|
Code: |
//1 - ok ar dažādiem dTime
BODY->linearVelocity.x += 2*dTime;
//2 - nav ok ar dažādiem dTime
BODY->linearVelocity += spdvec*dTime;
|
es tā skatos, ka, ja, tikai vienu no ātrumiem mainot (x/y), relatīvo ātrumu pareizina ar dTime, tad vienmēr un visur viss ir ok..
bet kāpēc nav tāpat tad, kad maina abus?
kodā paskaidrots, kas kā strādā.. _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Sun Mar 16, 2008 12:03 pm Post subject: |
|
Tos nesauc par vienu vai abiem ātrumiem. Tos sauc par ātruma vektora komponentēm (x un y komponentes).
Un nav aizliegts mainīt "visu" ātrumu tā kā tu to dari. Problēma ir citur vai arī jāskatās globālākā mērogā uz to visu. |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Sun Mar 16, 2008 12:13 pm Post subject: |
|
aizliegts jau protams nav, bet rezultāts nav pareizs..
būtu labi tā, ka spdvec*dTime veidotu vektoru, kura garums ir |spdvec|*dTime, nevis kādu citu, cik es saprotu..
citādāk kautkāpēc sanāk tā, ka pie dažādiem dTime, piemēram 1 un 2, ātrums nav attiecīgi (velocity*1 un velocity*2).. _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Sun Mar 16, 2008 12:21 pm Post subject: |
|
Tādā gadījumā tā ir pilnīgi atšķirīga operācija no prasītās saskaitīšanas.
Pirmajā postā tu simulē paātrinājumu (v = v0 + a*t).
Bet tagad tu vienkārši gribi pamainīt vektora garumu.
To dara pareizinot normalizētu doto vektoru ar vajadzīgo garumu: v_new = normalized(v_old) * new_length; |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Sun Mar 16, 2008 12:48 pm Post subject: |
|
hm...
tad kāpēc pirmajā koda piemērā viss strādā ok, bet otrajā nē?
tas var būt tāpēc, ka es pieskaitu dažādus vektorus vairākas reizes?
btw, fizikas libs visu tur simulē, es vnk uzlieku tam ķermenim ātrumu..
a varbūt tiešām no citas puses uz to jāskatās..
otrajā gadījumā vektora x komponente strādā ok, bet y - nē...
jāskatās..
skatos, visi spēki, kuri darbojas uz y asi nav pareizi.. _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
MoKa
Joined: 10 Oct 2007 Posts: 79 Location: Daugavpils
|
Posted: Mon Mar 17, 2008 6:42 pm Post subject: |
|
Хм, я одно время использовал DeltaTime синхронизатор, но отказался, и стал использовать немного другой, его принцип заключается в том, чтобы сохранять стабильный UPS, каким образом: если обновление логики и т.п. не успевает, то пропускается рендер, таким образом мы имеем всегда стабильное обновление без зависимости от рендера. _________________ Текущий Инструментарий: BlitzMax + Xors3D + FastImage + PhysX + sFXe |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Mon Mar 17, 2008 8:10 pm Post subject: |
|
hm, labāk nevajag, lai pazūd kadri..
tas bojā gameplay action spēlēm..
bet, cik es skatījos, problēma ir ar dTime precizitāti..
man ir tā, ka dTime nemainās, bet mainās Step izsaukumu skaits, lai saglabātu precizitāti fizikas lib'am _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
|