Utilizator:
Parola:
Am uitat parola... | Cont nou!


Articole Resurse Echipe Competiții Proiecte Forum DevBlogs Locuri de muncă GDROMag Issue#1 GDROCon 2007

 
Forum » Programare » Fizică » Collision Detection between dynamic objects




Pagina 1 din 1 [ 1 ]

Mesaj Info autor
    Postat la 18 Dec 2008 21:54:32    Subiect: Collision Detection between dynamic objects
Deliverance info:

Deliverance:

Am implementat detectarea coliziunilor si raspuns(sliding) intre o sfera si un set de poligoane dar de ceva vreme ma tot gandesc cum as putea face sa detectez coliziunile intre doua obiecte dinamice. Metoda ce am folosit-o intre obiect dinamic-obiect static a fost sa fac sweep la sfera si sa testez astfel coliziunile, dar daca am doua obiecte care se misca foarte repede? Cum as putea face altfel decat:

    Fie 2 obiecte A si B. A sta pe loc iar B este deplasat incremental pe directia in care se misca el. La fiecare astfel de pas, se fac sweep la A si se testeaza coliziunile cu B.

    Metoda asta mi se pare prea inceata. Cum pot face altfel? Very Happy


Status:
Înregistrat pe:
13 Oct 2006 10:05:37
Vârsta: 25 ani
Mesaje: 253
Locatie: Iasi , Romania
Programator

 
    Postat la 18 Dec 2008 23:11:07    Subiect: < fara subiect >
Dark info:

Dark:

Ce intelegi tu prin sweep? Swept collision detection intre doua obiecte A si B inseamna sa extrudezi obiectul A in directia miscarii relative fata de B si sa testezi geometria rezultata cu geometria lui B. In cazul asta nu exista probleme daca obiectele se misca foarte repede, deoarece testul este continuu, insa e destul de greu (si costisitor) sa faci asa ceva cu poligoane. Este si mai greu daca miscarea nu e liniara, adica daca ai rotatie.

Determinarea coliziunii nu-i de ajuns pentru o simulare fizica. Trebuie sa afli si timpul la care s-a produs coliziunea sau macar adincimea de penetrare (cele doua nu deriva una din alta decit daca miscarea e liniara). Asta e si mai greu decit testul de intersectie.

Subiectul e vast si nu se poate acoperi in doua cuvinte pe un forum. Eu zic sa-ti procuri cartea lu' Ericson si sa te pui pe citit. Cartea lu' Eberly contine si dinsa un capitol despre collision, dar e mult mai condensat si greu de asimilat.

Ca puncte de plecare poti cauta algoritmul axei de separatie sau algoritmul GJK. Un tutorial excelent de GJK se gaseste aici, dar vezi ca-i varianta care nu-ti ofera un mod simplu de a afla distanta de penetrare (o discutie destul de tehnica pe tema asta, la care participa si Ericson, se gaseste aici). Totusi, iti sugerez cartea, ca-ti ofera o baza mult mai buna decit bijbiitul pe Google si wikipedia.

"Am crezut ca esti ceva mai avansat" - Nekitu, 2008 A.D.
Autobaza


Status:
Înregistrat pe:
12 May 2007 20:12:30
Vârsta: ? ani
Mesaje: 740
Locatie:
Programator

 
    Postat la 19 Dec 2008 00:58:40    Subiect: Re:
Deliverance info:

Deliverance:

Dark a scris:

Ce intelegi tu prin sweep? Swept collision detection intre doua obiecte A si B inseamna sa extrudezi obiectul A in directia miscarii relative fata de B si sa testezi geometria rezultata cu geometria lui B. In cazul asta nu exista probleme daca obiectele se misca foarte repede, deoarece testul este continuu, insa e destul de greu (si costisitor) sa faci asa ceva cu poligoane. Este si mai greu daca miscarea nu e liniara, adica daca ai rotatie.

Determinarea coliziunii nu-i de ajuns pentru o simulare fizica. Trebuie sa afli si timpul la care s-a produs coliziunea sau macar adincimea de penetrare (cele doua nu deriva una din alta decit daca miscarea e liniara). Asta e si mai greu decit testul de intersectie.

Subiectul e vast si nu se poate acoperi in doua cuvinte pe un forum. Eu zic sa-ti procuri cartea lu' Ericson si sa te pui pe citit. Cartea lu' Eberly contine si dinsa un capitol despre collision, dar e mult mai condensat si greu de asimilat.

Ca puncte de plecare poti cauta algoritmul axei de separatie sau algoritmul GJK. Un tutorial excelent de GJK se gaseste aici, dar vezi ca-i varianta care nu-ti ofera un mod simplu de a afla distanta de penetrare (o discutie destul de tehnica pe tema asta, la care participa si Ericson, se gaseste aici). Totusi, iti sugerez cartea, ca-ti ofera o baza mult mai buna decit bijbiitul pe Google si wikipedia.


Okay, merci!


Status:
Înregistrat pe:
13 Oct 2006 10:05:37
Vârsta: 25 ani
Mesaje: 253
Locatie: Iasi , Romania
Programator

 
    Postat la 19 Dec 2008 01:15:25    Subiect: < fara subiect >
boboS info:

boboS:

Si gameinstitute.com are niste lectii misto de fizica in jocuri. Cu explicatii de la 0 si sampleuri facute in C++ si DirectX. Cel mai avansat sample era o masina care loveste o cutie in timp ce merge.

"Noi ne facem ca muncim , ei se fac ca ne platesc"


Status:
Înregistrat pe:
03 Oct 2006 15:53:21
Vârsta: 25 ani
Mesaje: 961
Locatie: Galați
Programator

 
    Postat la 19 Dec 2008 17:05:42    Subiect: Re:
Black_Knight info:

Black_Knight:

boboS a scris:

Si gameinstitute.com are niste lectii misto de fizica in jocuri. Cu explicatii de la 0 si sampleuri facute in C++ si DirectX. Cel mai avansat sample era o masina care loveste o cutie in timp ce merge.


da si mai e si o carte de fizica care are acelasi exemplu Razz
GI e misto dar cred ca este mai avansat ce vrea el


Status:
Înregistrat pe:
07 May 2007 19:49:43
Vârsta: 29 ani
Mesaje: 712
Locatie: Bucuresti
Programator

 

Pagina 1 din 1 [ 1 ]


Server time: 08:36:55 19.05.2012



[ Termeni si conditii | Contact | F.A.Q. | Funny Pictures ]

© 2006 - 2012 Copyright 7thFACTOR Entertainment - All rights reserved