Separating Plane Theorem?
Übersicht

![]() |
NoobodyBetreff: Separating Plane Theorem? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Obwohl ich kaum vermute, dass mir jemand helfen kann, poste ich einfach mal ![]() Und zwar dreht es sich um eine Kollisionserkennung in 3D. Ich arbeite ja grade daran, meine Physiksimulation in die dritte Dimension zu übertragen und stecke nun bei der Kollision fest. Da ich in 2D das Separating Axis Theorem verwende, welches hervorrangende Dienste leistet, hielt ich es nur für logisch, in der dritten Dimension das Separating Plane Theorem zu verwenden. Leider gibt es für dieses überhaupt keine Ressourcen im Internet, weswegen ich mir auch nicht sicher bin, ob ich das richtig verstanden habe. In 2D projiziere ich ja beide Polygone auf eine Linie und überprüfe, ob sich die Projektionen überlappen. In 3D würde das ja heissen, dass ich beide Polygone auf eine Fläche projiziere und dann überprüfe, ob sich die Projektionen überlappen. Die Projektionen auf der Fläche sind aber wiederum 2D - Polygone, und um zu überprüfen, ob die sich überlappen, benötige ich wieder das Separating Axis Theorem - der Rechenaufwand wäre also gigantisch. Ich habe mir auch schon andere Kollisionsmethoden angeschaut (unter anderem die sture Methode, Dreieck für Dreieck auf Kollision zu prüfen), aber sie erfüllen leider alle nicht ihren Zweck. Es reicht nämlich nicht, einfach zu schauen, ob zwei Objekte kollidieren, sondern ich bräuchte die selben Daten, wie es das Separating Axis Theorem zurückliefert; nämlich den Vektor, der benötigt wird, um die beiden Objekte auseinanderzustossen, so dass sie nicht mehr kollidieren. Kennt sich da jemand ein wenig aus und/oder hat Links zu Artikeln über solche Kollisionsmethoden? Wäre für jedes Stück Hilfe dankbar, da mir im Moment nichts mehr dazu einfällt. |
||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
tmode00 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Sieht aus wie in diesen Loco Roco Psp Spiel, wo die ganzen Bälle miteinander kollidieren wie Gummi. Darf man schlicht und einfach fragen was du vorhast? Wie sollen sich deine Kollisionsobjekte verhalten und wozu? | ||
While (1) : Wend |
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
minib3d ist ja opensource, bedien dich doch ![]() |
||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
tmode00 hat Folgendes geschrieben: Darf man schlicht und einfach fragen was du vorhast? Wie sollen sich deine Kollisionsobjekte verhalten und wozu?
Ich habe eine Physiklib in 3D vor und meine Kollisionsobjekte sollen sich so verhalten, dass es realistisch aussieht ![]() (was soll man denn sonst auf den Post antworten?) Godjee hat Folgendes geschrieben: minib3d ist ja opensource, bedien dich doch
![]() MiniB3D benutzt soviel ich weiss Newton für die Physik, was leider Closed Source ist. Aber danke für den Tipp ![]() |
||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
![]() |
aMulSieger des Minimalist Compo 01/13 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe von Vektoren wenig Ahnung, aber könnte man nicht den ganzen auf 2D und dann 1D Projektionskram zweimal durchführen(auf unterschiedliche Flächen!) und dann aus den beiden sich ergebenden 2D-Vektoren den 3D-Vektor berechnen?
Wie gesagt, ich habe von Vektoren keinen Schimmer und dazu würde das so, wenn es überhaupt geht noch mehr Leistung fressen. Aber vielleicht hilft es dir ja auf irgendeine Art und Weise. EDIT: Was anderes: Kann man nicht einfach die Rechnung die man durchführt um an den Vektor in der 2D-Kollision zu kommen auf 3D erweitern? |
||
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans! Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver |
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
aMul hat Folgendes geschrieben: Ich habe von Vektoren wenig Ahnung, aber könnte man nicht den ganzen auf 2D und dann 1D Projektionskram zweimal durchführen(auf unterschiedliche Flächen!) und dann aus den beiden sich ergebenden 2D-Vektoren den 3D-Vektor berechnen?
An sich würde es schon reichen, wenn man nur auf eine Fläche projiziert - es müsste einfach die richtige sein ![]() Und da ich nicht weiss, welches die richtige ist, muss ich auf alle Flächen beider Polygone projizieren, da ich ja weiss, dass die Fläche zu einem Polygon gehört. aMul hat Folgendes geschrieben: Was anderes: Kann man nicht einfach die Rechnung die man durchführt um an den Vektor in der 2D-Kollision zu kommen auf 3D erweitern?
Naja, da steckt ja leider das Problem. Um an den Vektor in 2D zu kommen, schaue ich, ob sich die Projektionen überlappen. Mache ich es analog in 3D, dann schaue ich, ob sich die Projektionen überlappen. Wie überprüfe ich aber, ob sich zwei 3D - Projektionen (=2D Polygone) überlappen? Dort kommt wieder die 2D - Kollision zum Einsatz. Das würde dann heissen, dass ich pro 3D - Objekt mehrere 2D - Kollisionen durchführen muss, und das will mir irgendwie nicht in den Kopf, dass es da keine bessere Methode gibt. |
||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
Darren |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
erstelle dir doch vorerst für jedes objekt ein bounding-objekt außenrum entweder ne Kugel oder nen Quader um schon einmal ein paar kollisionsberechnungen von vorn herein ausschließen zu können...
und wenn du eine hyperebene zum 3D-Raum finden willst, die für deine projektion geeignet sein könnte, weiß ich leider auch nicht weiter^^ |
||
MFG Darren |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group