Kollisionserkennung bei animierten und beweglichen Modellen?
Verfasst: 10.10.2010, 11:20
Hallo,
Ich habe mir Mal ein paar Artikel zu Kollisionserkennung durchgelesen. Collision Spheres, AABBs, OBBs und so Trees dazu erscheinen ja eigentlich ganz interessant.
Jetzt habe ich aber Mal weitergedacht. Was, wenn man ein animiertes Modell oder ein bewegliches oder beides hat?
Bei Animationen müsste man ja irgendwie alle Boxen entsprechend zu den Meshes oder Modellteilen binden und diese dann genau so mitbewegen wie das Objekt selbst. Das ist bei Rotationen dann aber ziemlich aufwändig, oder? Sagen wir z.B. ich habe ganz viele wild rotierende Objekte in meinem Spiel (warum auch immer). Dann müssen ja die ganzen Boundingboxen lustig mitrotieren. Während ich für ein Objekt nur eine Matrix pro Frame neu erstellen muss, die dann natürlich sin/cos nutzt, habe ich bei den Boxen ja für alle Boxen jeweils die Rotationsberechnungen.
Oder ich richte die jeweils inneren Boxen relativ zu der übergeordneten Box mit Vektoren aus. Dann rotiere ich nur einmal die Vektoren und kann die anderen Boxen relativ dazu berechnen. Wäre es dann nicht auch schlau, die Berechnung der inneren Boxen auf den Zeitpunkt zu verlagern, wo eine Kollision mit der äußeren Box bereits statt gefunden hat? Dürfte ja einiges an Zeit sparen.
Hm, eigentlich reicht für eine BoundingBox doch auch ein einziger Vektor für die Achsen, der neu berechnet werden muss. Wichtig ist aber irgendwie, dass alle Teile eines Modells die sich bewegen können (z.B. ein Arm) auf alle Fälle eine eigene BB erhalten, sonst ist das ja witzlos, hm...
Nagut und bei beweglichen Objekten, die auch lustig hin- und her rotieren, ist es dann letztlich das gleiche wie bei animierten Modellen.
Habt ihr irgendein Stichwort, wozu ich was suchen kann, bzw. habt ihr sonst irgendwelche guten Ideen für so was im Kopf?
Viele Grüße
PS: Ich glaube, ich sollte erstmal animierte Objekte korrekt benutzen können. ^^
Ich habe mir Mal ein paar Artikel zu Kollisionserkennung durchgelesen. Collision Spheres, AABBs, OBBs und so Trees dazu erscheinen ja eigentlich ganz interessant.
Jetzt habe ich aber Mal weitergedacht. Was, wenn man ein animiertes Modell oder ein bewegliches oder beides hat?
Bei Animationen müsste man ja irgendwie alle Boxen entsprechend zu den Meshes oder Modellteilen binden und diese dann genau so mitbewegen wie das Objekt selbst. Das ist bei Rotationen dann aber ziemlich aufwändig, oder? Sagen wir z.B. ich habe ganz viele wild rotierende Objekte in meinem Spiel (warum auch immer). Dann müssen ja die ganzen Boundingboxen lustig mitrotieren. Während ich für ein Objekt nur eine Matrix pro Frame neu erstellen muss, die dann natürlich sin/cos nutzt, habe ich bei den Boxen ja für alle Boxen jeweils die Rotationsberechnungen.
Oder ich richte die jeweils inneren Boxen relativ zu der übergeordneten Box mit Vektoren aus. Dann rotiere ich nur einmal die Vektoren und kann die anderen Boxen relativ dazu berechnen. Wäre es dann nicht auch schlau, die Berechnung der inneren Boxen auf den Zeitpunkt zu verlagern, wo eine Kollision mit der äußeren Box bereits statt gefunden hat? Dürfte ja einiges an Zeit sparen.
Hm, eigentlich reicht für eine BoundingBox doch auch ein einziger Vektor für die Achsen, der neu berechnet werden muss. Wichtig ist aber irgendwie, dass alle Teile eines Modells die sich bewegen können (z.B. ein Arm) auf alle Fälle eine eigene BB erhalten, sonst ist das ja witzlos, hm...
Nagut und bei beweglichen Objekten, die auch lustig hin- und her rotieren, ist es dann letztlich das gleiche wie bei animierten Modellen.
Habt ihr irgendein Stichwort, wozu ich was suchen kann, bzw. habt ihr sonst irgendwelche guten Ideen für so was im Kopf?
Viele Grüße
PS: Ich glaube, ich sollte erstmal animierte Objekte korrekt benutzen können. ^^