dev.gamez.lv Forum Index dev.gamez.lv
Latvian Game Developers Community
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups 

objektu kustības paātrināšana
Goto page Previous  1, 2, 3  Next
 
dev.gamez.lv Forum Index -> Matemātika un fizika
View previous topic :: View next topic  
Author Message
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Tue Nov 20, 2007 9:19 pm    Post subject:

Pasaki lūdzu, kur ir atšķirība starp šiem diviem koda gabaliem:
Code:
Update(1.0/60);
Update(1.0/60);


Code:
Update(2.0/60);
Back to top
View user's profile Send e-mail
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Tue Nov 20, 2007 9:30 pm    Post subject:

precizitātē!
vai nu vienkārši saīsinās timestep (ķermeni pārvieto vienu reizi), vai arī ķermeņi tiek pārvietoti divas reizes

tā, kā tu to parādi, atšķirības, protams, nav un nebūs!
bet vienkārši saproti to, ka Box2D ir tāds fizikas dzinis, kuru es tomēr pazīstu nedaudz labāk! varu iedot 2 exes - ar tavu variantu, un ar manu variantu, ja netici!
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Tue Nov 20, 2007 9:40 pm    Post subject:

Ok, varbūt tas tāds arī ir.. nezinu to Box2D.
Bet katrā ziņā ņem vērā, ka jebkura fizikas dziņa performance noteikti samazinās, ja updeitu izsauc vairākas reizes vienas vietā, ja pat kopsummā laiks ir vienāds abos gadījumos.
Back to top
View user's profile Send e-mail
Storm



Joined: 11 Apr 2006
Posts: 742

PostPosted: Tue Nov 20, 2007 10:23 pm    Post subject:

Mulkiigs jautaajums.
Ja gribi visu dzini paatrinaat, tas noziimee ka gribi visus aatumus paatrinaat - izvedo konstantu lielumu piem GameSpeed = 1.0, tad visur kur definee kaada objekta paarvietosanaas aatrumu, piereizini to skaitli, arii pie visiem speekiem, gravitaateem un blabla kas tur ir. Razz
Back to top
View user's profile
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Tue Nov 20, 2007 10:38 pm    Post subject:

Storm... esi nedaudz nokavējis..
par tādu ideju jau sen bija nolemts, ka radīsies precizitātes kļūdas..
bubu... performance samazinās un precizitāte palielinās! Wink
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
Storm



Joined: 11 Apr 2006
Posts: 742

PostPosted: Tue Nov 20, 2007 10:43 pm    Post subject:

Ko tu murgo? Kaadas precizitaates kljuudas? Tagad divus floatus sareizinot rodas taads errors, ka viss gljukot saak? Laughing Es neprasu lai tu update f-jaa kko maini - tev dzinii ir taads lielums mainaams force, gravity etc? Tad palielini vinju!

Code:

float PhSpeed = 2.0f;
b2Vec2 gravity(0.0f * PhSpeed, -10.0f * PhSpeed);
b2World world(worldAABB, gravity, doSleep);


Code:

    void ApplyForce(const b2Vec2& force * PhSpeed, const b2Vec2& point);
    void ApplyImpulse(const b2Vec2& impulse * PhSpeed, const b2Vec2& point);
Back to top
View user's profile
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Wed Nov 21, 2007 3:05 pm    Post subject:

nu es tev mēģināšu labāk paskaidrot..

redzi, dzinī piemēram 1 reizi pārbauda sadursmes un izšķir ķermeņus - tas ir neprecīzi un pie lieliem ātrumiem kautkāpēc objekti ielien zemē un lec ārā, ielien un lec ārā, u.t.t.

bet ar 5 reizēm ķermeņa pozīcija ir precīzāk izrēķināta, tāpēc ķermenis ir mazāk kustīgs vai vispār nav kustīgs!

ja tu pats būtu lietojis Box2D tad saprastu..
man jau viss ir skaidrs! varu iedot piemēru veidotu ar tavu un manu ideju, redzēsi, kam sanācis labāk Wink
nav jēgas strīdēties, viss jau ir izlemts!
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
Storm



Joined: 11 Apr 2006
Posts: 742

PostPosted: Wed Nov 21, 2007 5:59 pm    Post subject:

Nekas nav atrisinaats - ja dzinis nespeej "labi uzvesties" pie lieliem skaitljiem tad maini dzini! Jo labam dzinim buutu jaaspeej darboties arii lieliem aatrumiem.. es kaut kad sen lasiiju vienu veslelu graamatu bezmazvai kaados veidos ar tiem aatrumiem var tikt galaa... ja jau lieto dzini tad lieto normalu nevis kaut kaadu primitiivismu... Ja veelies vari atsuutiit arii piemeerus, buus interesanti apskatiities kaada tad iisti ir taa atskiriiba.
Back to top
View user's profile
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Wed Nov 21, 2007 6:35 pm    Post subject:

Nenocietos un pamēģināju to Box2D. Redz kur rezultāts: http://maiss.02.lv/faili/bubu/box2d_test.exe.zip Laiku var paātrināt ar pogām 5/6/7 (x2/x4/x8 speedups), vai arī palēlināt - 1/2/3 (x0.125/x0.25/0x5 speedups, ar pogu 4 uzstāda normālu laika ritējumu (x1). Ar atstarpi var kastes pasvaidīt pa gaisu. Uz mana datora pat uz x8 ātruma viss simulējas precīzi un labi - nekas tāds kā (citēju snake5): "pie sadursmēm ķermenis neapstāsies, bet visu laiku kratīsies" nav novērojams. Te tev nu bija (atkal citēju snake5): "viss pareizi implementēts, tici vai nē!". Jau kuro reizi pierādās, ka tev ticēt nevar ;)

To speedupa mainīšanu panācu tikai un vienīgi ar koeficienta piereizināšanu pagājušam laikam kopš iepriekšējā kadra (tā kā teicu jau pašā sākumā #4 postiņā).

Mācēt programmēt vien nenozīmē izsaukt funkciju A un funkciju B un brīnīties kāpēc viss nestrādā kā tu gribi - mācēt programmēt nozīmē saprast kāpēc tās jāizsauc un kādas sekas tās rada.

Fizikas dziņa nespēja strādāt ar defaultajām kaut kādām vērtībai tavai pasaules konfigurācijai ne vienmēr nozīmē, ka tas ir slikts. Fizikas simulācija spēles ir visai tricky lieta - bieži vien nākas ņemties ar koeficientu pietvīkošanu, lai dabūtu gan performanci, gan labu performanci.


Last edited by bubu on Wed Nov 21, 2007 6:47 pm; edited 2 times in total
Back to top
View user's profile Send e-mail
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Wed Nov 21, 2007 6:37 pm    Post subject:

negribi tad te varbūt parādīt, kur grāmatu tādu var atrast?
atsūtīšu piemērus.. viens ir debug exe ar manu variantu, otrs - release exe ar tavu variantu..

http://yy.lv/upload/down.php?f=81796

bubu: kā tad tev tas sanāca (kodā)? tāpēc jau es šo topiku arī uztaisīju! gribēju kko šādu redzēt! droši vien zem b2Settings.h tā problēma slēpjas..
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Wed Nov 21, 2007 6:47 pm    Post subject:

snake5 wrote:
bubu: kā tad tev tas sanāca (kodā)?

Es skaidri un gaiši pateicu kā to panācu:
Quote:
To speedupa mainīšanu panācu tikai un vienīgi ar koeficienta piereizināšanu pagājušam laikam kopš iepriekšējā kadra (tā kā teicu jau pašā sākumā #4 postiņā).

Nevienu failu no Box2D sources neesmu mainījis.
Back to top
View user's profile Send e-mail
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Wed Nov 21, 2007 6:50 pm    Post subject:

wtf? negribi iepostēt kodu? jo tas, ko tu saki ir pati pirmā lieta, kuru mēģināju mainīt!

ja tā ir tā pati funkcija.. b2World::Step(1/seconds_passed,it)
kur jāmaina "seconds_passed"...
ja tas ir tas pats, tad man kkas smagi nestrādā...
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle


Last edited by snake5 on Wed Nov 21, 2007 7:01 pm; edited 1 time in total
Back to top
View user's profile Visit poster's website
Storm



Joined: 11 Apr 2006
Posts: 742

PostPosted: Wed Nov 21, 2007 7:00 pm    Post subject:

Patiesiibaa... ._.

Quote:

Box2D uses a bit of numerical code called an integrator. Integrators simulation the physics equations at discrete points of time.


Tas noziimee ka
1) Domumentaacija jaalasa
2) Tas mazais skaitlitis 1/60 ir laika intervaals nevis ik peec kura tiek izsaukts update bet gan pa kaadam laika/attaaluma intervaalam visa taa updeitosana notiek.

Palasiities:
http://www.gaffer.org/game-physics/integration-basics/
Back to top
View user's profile
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Wed Nov 21, 2007 7:26 pm    Post subject:

zinu, kas ir tas mazais skaitlis, palasīju dokumentāciju, bet joprojām nesaprotu, kāpēc bubu to var dabūt gatavu, bet es nē, ja liekas, ka lietojam abi tos pašus līdzekļus, lai tiktu galā ar problēmu!
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
Storm



Joined: 11 Apr 2006
Posts: 742

PostPosted: Wed Nov 21, 2007 7:48 pm    Post subject:

Manupraat neviens variants nebuus iitsti pareizs ^^;; Ja bubu piedaavaatu sava piemeerinja sourci, man nebuutu slinkums paskatiities kaa es to iistenotu Razz
Back to top
View user's profile
Display posts from previous:   
dev.gamez.lv Forum Index -> Matemātika un fizika All times are GMT + 2 Hours
Goto page Previous  1, 2, 3  Next
Page 2 of 3

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group