Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
yaqwsx
Založen: 25. 02. 2008 Příspěvky: 66
|
Zaslal: 28. leden 2009, 17:50:19 Předmět: Reakce na kolizi - 2D |
|
|
Zkouším jednoduchou "simulaci" (jestli se tomu vůbec dá tak říkat) ve 2D. Veškerá tělesa uvažuji pouze jako hmotné - během každé smyčky poskládám síly a pak pohnu.
Při kolizi těles rozložím sílu a rychlost na 2 kolmé složky atd...
Mám však problém, že tělesa se mi do sebe mírně "zanoří".
Vím, že řešením je před pohybem tělesa zkontrolovat kolizi, ale to mi s mou (prozatím) neoptimalizovanou detekcí kolize nepřipadá jako dobrý nápad. Exisuje nějaké jiné řešení jak to ošetřit? |
|
Návrat nahoru |
|
 |
pcmaster

Založen: 28. 07. 2007 Příspěvky: 1827
|
Zaslal: 28. leden 2009, 21:33:29 Předmět: |
|
|
Nie som si celkom isty, co tym myslis.
Obecny postup najdes v kazdom clanku, aj tu na wiki a je priblizne nasledovny:
- pomocou newtonovych zakonov spocitas nove pozicie (integracia)
- zistis kolizie, tj. kolizne body, normaly v tychto bodoch a hlbku penetracie (detekcia kolizii)
- zareagujes na kolizie, tj "posunies" telesa v smere normaly o hlbku penetracie, alebo teda aplikujes novu silu tak, aby sa posunuli a uz neboli v sebe (odpoved na kolizie).
Da sa to spravit este aj nejako principialne odlisne?
http://newwiki.ceske-hry.cz/Kolize_a_n%C3%A1sledn%C3%A1_reakce _________________ Off-topic flame-war addict since the very beginning. Registered since Oct. 2003!
Interproductum fimi omne est. |
|
Návrat nahoru |
|
 |
yaqwsx
Založen: 25. 02. 2008 Příspěvky: 66
|
Zaslal: 29. leden 2009, 16:37:51 Předmět: |
|
|
Jej, já opomenul pár věcí. Myslel sjem jak to ošetřit bez znalosti hloubky průniku zkrz těleso - zatím se nedaří najít nějaký rozumný způsob jeho vypočítání a mám problémy s rychlostí.
Kolizi dělám pomocí úseček, které ohraničují těleso. Pak jen zjišťuji jejich průnik... |
|
Návrat nahoru |
|
 |
]semo[

Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 30. leden 2009, 11:18:12 Předmět: |
|
|
citace: |
Veškerá tělesa uvažuji pouze jako hmotné |
takže duchové tam nebudou? :-D (sorry, vtip)
Možná tak, že při kolizi uložíš dvě navzájem kolidující tělesa do pole a každý jeho prvek pak ošetříš následovně:
1) standard. reakce na kolizi (síly...)
2) nová detekce mezi dvěma objektama s případným odsunem od sebe
rozdíl je ten, že tělesa neodsovuáš od sebe před pohybem, ale po kolizi (cca jako je to v tom článku, ale bez znalosti hloubky). Tím ušetříš nějaký výpočty. Musíš ovšem zanedbat případ, kdy se vlivem odsunutí zasune jeden objekt do dalšího. Vážně se to většinou prostě zanedbává (-Máš li málo hustou scénu. Jinak to je nutný několikrát opakovat.).
Nebo nějaký fejkovaný řešení:
- pokud se to pohybuje všechno pomalu, můžeš dva kolidující objekty vrátit do předchozího snímku.
- můžeš taky vždy přidat nějakou rychlost obou tělesům, která je od sebe odhodí. Když se to vyladí, člověk si nevšimne toho drobnýho zanoření. _________________ Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory |
|
Návrat nahoru |
|
 |
yaqwsx
Založen: 25. 02. 2008 Příspěvky: 66
|
Zaslal: 18. únor 2009, 16:50:14 Předmět: |
|
|
Díky za rady. Reaguji trochu později, ale týden jsem nebyl u PC. Nějakou konstantu na vrácení (ať už zvětšení sil, tak i posunutí) jsem již zkoušel, ale nemohl jsme se dopátrat nějaké smysluplné hodnoty. Proto jsme tu psal. Asi to vypadá, že budu muset počítat hloubku zanoření...
Jinak s duchy se počítá, ale duch nemá žádnou hmotnost, je to vlastně jen energie a na tu newtonovi zákony nepůsobí. |
|
Návrat nahoru |
|
 |
Hardwire
Založen: 04. 09. 2007 Příspěvky: 117
|
|
Návrat nahoru |
|
 |
|