.[ ČeskéHry.cz ].
ODE - determinismus
Jdi na stránku 1, 2, 3, 4  Další
 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Fyzikální modely
Zobrazit předchozí téma :: Zobrazit následující téma  

Časový krok (který používám)
ODE - konstantní
5%
 5%  [ 1 ]
ODE - proměnný
0%
 0%  [ 0 ]
Vlastní fyz. engine - konstantní
40%
 40%  [ 8 ]
Vlastní fyz. engine - proměnný
10%
 10%  [ 2 ]
Jiný fyz. engine (Bullet, ...) - konstantní
20%
 20%  [ 4 ]
Jiný fyz. engine (Bullet, ...) - proměnný
10%
 10%  [ 2 ]
Fyziku neřeším ;) nebo nevím (třeba Blender GE, kdoví, jak to tam je)
15%
 15%  [ 3 ]
Celkem hlasů : 20

Autor Zpráva
frca



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

PříspěvekZaslal: 1. květen 2008, 17:01:37    Předmět: ODE - determinismus Odpovědět s citátem

Pracuje ODE deterministicky? Např. když 10x volám dWorldQuickStep(world, 0.1) anebo 1000x dWorldQuickStep(world, 0.001), dojde simulace ze stejného výchozího bodu do stejného cílového?
Díky.


Naposledy upravil frca dne 1. květen 2008, 23:30:09, celkově upraveno 2 krát
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: 1824

PříspěvekZaslal: 1. květen 2008, 17:24:30    Předmět: Odpovědět s citátem

Ano. IMHO.
_________________
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
johnnash



Založen: 30. 07. 2007
Příspěvky: 80

PříspěvekZaslal: 1. květen 2008, 17:27:20    Předmět: Odpovědět s citátem

ODE neznam, deterministicky pracuje urcite ale to roli nehraje. Dulezite je pouziti numericke metody a s tim spojene nepresnosti ve FP jednotce. Cim lepsi metody tim vetsinou vice operaci a s tim spojene naakumulovani nepresnosti a pri jemnejsim kroku se to muze celkem projevit.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
nou



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

PříspěvekZaslal: 1. květen 2008, 17:49:35    Předmět: Odpovědět s citátem

NIE nie je. co som s nim experimentoval tak nie je deterministicky. ak som spustil 10x tu istu simulaciu vysledok bol vzdy iny. a to pri fixnom casovom kroku. je to sposobene tym ze sa generuju kolizne body a z tych sa nahodne vyberu vetsinou tak 3 a pracuje sa uz len s nimi. ale da sa to hacknut tak ze pred kazdym krokom zavolate srand(0) (aspon co som cital na nete)
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
pcmaster



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

PříspěvekZaslal: 1. květen 2008, 18:17:48    Předmět: Odpovědět s citátem

Nevedel som, ze tam fakt pouzivaju random. Ojebavaci 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
frca



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

PříspěvekZaslal: 1. květen 2008, 19:26:17    Předmět: Odpovědět s citátem

Poddotazy:
1) Při proměnném časovém kroku je simulace nedeterministická? Teď mě zajímá spíš situace kolem vlastního pohybu objektů, než kolem kolizí (tzn. předpokládejme, že se objekty nesrazí).

2) Jde nějak pushnout/popnout stav simulace? Moje představa je taková: Pro časový rozdíl 0.26 odsimulovat kroky 0.0-0.1, 0.1-0.2, push, 0.2-0.26, hotovo; další frame - pop (tím se dostane do stavu 0.2), pak pro časový rozdíl např. 0.22 přičíst 0.6 -> rozdíl 0.28 a odsimulovat příslušné kroky - 0.0-0.1, 0.1-0.2, push, 0.2-0.28, hotovo; další frame...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Mem



Založen: 28. 07. 2007
Příspěvky: 1959
Bydliště: Olomouc

PříspěvekZaslal: 1. květen 2008, 19:35:33    Předmět: Odpovědět s citátem

pcmaster napsal:
Nevedel som, ze tam fakt pouzivaju random. Ojebavaci Very Happy

Tak priroda to robi tiez, ked pustis simulaciu, tak su atomy v roznej pozicii Wink
_________________
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: 1. květen 2008, 20:01:23    Předmět: Re: ODE - determinismus Odpovědět s citátem

frca napsal:
Např. když 10x volám dWorldQuickStep(world, 0.1) anebo 1000x dWorldQuickStep(world, 0.001)

Tohle je přesně případ, kdy to fungovat nebude kvůli té numerické nestabilitě. To s tím menším časovým krokem může být méně stabilní bez ohledu na to, zda ODE používá rand() nebo ne.
_________________
AMD Open Source Graphics Driver 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: 1. květen 2008, 20:56:29    Předmět: Odpovědět s citátem

Hlavně bych řek, že čim menší časovej krok, tím menší chyba. Takže jestli nebude docházet ke kolizím a budeš používat stejnej časovej krok, pak by simulace měla dopadnout stejně. Ale dopadnou rozdílně dvě stejný simulace s odlišným časovým krokem.
(S ODE nedělám, beru v potaz jen takovej svůj obecnej pohled na fyzikální enginy...)

Eosie> výsledek nebude stejný kvůli numerické nestabilitě, ale kvůli rozdílné chybě numerické integrace (čistě logicky, časový krok 1 s pro simulaci dlouhou 1 s nedokáže křívkou "podchytit" jevy, které nastanou třeba v čase 0.35 s ).
_________________
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
frca



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

PříspěvekZaslal: 1. květen 2008, 23:21:09    Předmět: Odpovědět s citátem

Co byste mi doporučili? V ODE API není, pokud vím, prostředek pro přímou podporu konstantního časového kroku, takže řešit to by mohlo být zbytečné, jak to děláte vy? Konstantní, nebo proměnný časový krok? Možná by to chtělo hlasování Wink
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: 1047

PříspěvekZaslal: 2. květen 2008, 07:52:40    Předmět: Odpovědět s citátem

neviem ale v dokumentacii ODE odporucaju prave konstantny casovy krok. teda zvolit si nejaku jeho dlzku a ej sa uz drzat. pretoze jeho zmena by mohla sposobit nestabilitu.
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
frca



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

PříspěvekZaslal: 2. květen 2008, 08:25:46    Předmět: Odpovědět s citátem

Takže už zbývá vyřešit jenom poddotaz 2.
Jiné řešení, které mě napadá, je pozice objektů mezi časovými kroky nesimulovat, ale interpolovat.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Ash



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

PříspěvekZaslal: 2. květen 2008, 09:04:34    Předmět: k ankete Odpovědět s citátem

Používam Bullet, typ krokovania mám nastavený v konfigurácii, takže môže byť konštantný aj premenlivý.

GameBlender používa Bullet s premenlivým časovým krokom.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Fila



Založen: 31. 07. 2007
Příspěvky: 853

PříspěvekZaslal: 2. květen 2008, 10:06:11    Předmět: Re: ODE - determinismus Odpovědět s citátem

frca napsal:
Pracuje ODE deterministicky? Např. když 10x volám dWorldQuickStep(world, 0.1) anebo 1000x dWorldQuickStep(world, 0.001), dojde simulace ze stejného výchozího bodu do stejného cílového?
Díky.

To je chybne polozena otazka. ODE je deterministicke -- kdyz zavolas 1000x dWorldQuickStep(world, 0.001), pak spustis program znovu a zavolas 1000x dWorldQuickStep(world, 0.001), pak bude vysledek stejny.

Ty se ale neptas na to, zda je ODE deterministicke, ale na to, zda je vysledek simulace konstantni vzhledem k delce casoveho kroku. To neni. ODE leze mezi jednotlivymi kroky po derivacich pohybovych funkci a ty jsou primky. Zkus si nakreslit nejakou krivku a pak ji aprozimovat pomoci spousty kratkych primek a pomoci desetiny desetkrat delsich primek. Bude to vypadat jinak.

Tim jsem odpovedel i na promennou delku casoveho kroku -- pokud budes delat nedeterministicky dlouhe casove kroky, pak bude i vysledek nedeterministicky.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Fila



Založen: 31. 07. 2007
Příspěvky: 853

PříspěvekZaslal: 2. květen 2008, 10:10:21    Předmět: Odpovědět s citátem

frca napsal:
Poddotazy:
1) Při proměnném časovém kroku je simulace nedeterministická? Teď mě zajímá spíš situace kolem vlastního pohybu objektů, než kolem kolizí (tzn. předpokládejme, že se objekty nesrazí).

2) Jde nějak pushnout/popnout stav simulace? Moje představa je taková: Pro časový rozdíl 0.26 odsimulovat kroky 0.0-0.1, 0.1-0.2, push, 0.2-0.26, hotovo; další frame - pop (tím se dostane do stavu 0.2), pak pro časový rozdíl např. 0.22 přičíst 0.6 -> rozdíl 0.28 a odsimulovat příslušné kroky - 0.0-0.1, 0.1-0.2, push, 0.2-0.28, hotovo; další frame...


1) Jo, pokud je casovy krok nedeterministicky (napr. zalezi na rychlosti behu programu -- kdyz nestiha, tak zacne delat vetsi kroky).

2) Nerad bych kecal, ale toto jsem nejak resil a slo to, ale ODE to primo nepodporuje (tzn. musis u kazdeho objektu rucne sebrat jeho aktualni pozici, orientaci, linearni a uhlovou rychlost, musis sebrat jointy, kontaktni jointy atd a ulozit si je, pak je zase vytvorit). Mozna by bylo lepsi, kdybys napsal, co konkretne potrebujes udelat, treba bude existovat snazsi cesta.
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 -> Fyzikální modely Časy uváděny v GMT + 1 hodina
Jdi na stránku 1, 2, 3, 4  Další
Strana 1 z 4

 
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