![]() |
Re: Kollision von Ellipsoiden
Das Problem lässt sich aber noch dahingehend vereinfachen, dass man über die Anwendung einer Rotationsmatrix wenigstens eine Ellipse dahingehend dreht, dass ihre Achsen parallel zu den Achsen des KS liegen.
|
Re: Kollision von Ellipsoiden
Zitat:
![]() |
Re: Kollision von Ellipsoiden
Nur so eine Überlegung: Da die Berechnung anscheinend sehr kompliziert ist, könn man dann eine Vorberechnung machen. Zum Beispiel die Berechnung das einfachen Abstand, um zu prüfen, ob eine Kollsion überhaupt in Frage kommt.
MfG freak |
Re: Kollision von Ellipsoiden
@Dax: Das es da eine Lösung gibt, ist doch nichts Neues. Nur: Wie lang brauchst du, um so was zu implementieren. Und auch dann ist es noch ordentlich Arbeit.
|
Re: Kollision von Ellipsoiden
Ich werde einen schnellen Kollisionstest per Bounding Sphere als ungefähres Kollisionskriterium implementieren (3 Subtraktionen, 4 Multiplikationen, 2 Additionen, 1 Vergleich, also sehr schnell zu berechnen).
Also, jetzt dazu, wozu ich das alles brauche. Ich denke momentan vage daran, eine Art Weltraum-Spiel zu programmieren (mit OpenGL). Wenn ich jetzt einen Kollisionstest machen will, muss ich möglicherweise testen, ob 20-30 Schiffe mit jeweils einer Station kollidieren. Jetzt sind Schiffe u.U. nicht gerade klein und Stationen sind riesig. Auch bei Beschuss durch Raketen/Partikelwaffen ergibt sich dieses Problem. Da stellt sich natürlich die Frage, ob ein Dreiecks-Dreiecks-Test in allen Fällen das richtige ist, da der eine Komplexität von O(m*n) hat (wobei m die Dreiecksanzahl des Schiffes, n die der Station ist). Da Schiffe eher länglich sind, lässt sich ihre Form u.U. nicht sehr gut mit einer Kugel approximieren, jedoch sehr gut mit einem Ellipsoiden. Darüber hinaus sollen die Schiffe Schilde besitzen, die bei einem Treffer das Projektil abfangen. Diese Schilde sollen dann ellipsoid das Schiff umgeben, wodurch ich sogar noch eine optisch ansprechende und logisch einleuchtende Erklärung für diese Kollision habe. Der Ellipsoid-Test wird dadurch also eher selten, der Polygon-Test noch seltener verwendet, was sich ressourcensparend auswirkt - und Ressourcen sind bei einem 3D-Echtzeit-Spiel immer knapp. |
Re: Kollision von Ellipsoiden
Du könntest dir auch überlegen die langen Formel durch andere geometrische Formen anzunähern. z.B. erst eine Halbkugel, dann einen Kegelstumpf, einen Zylinder, einen Kegelstumpf und eine Halbkugel. Sieht recht ähnlich aus und sollte recht einfach zu schreiben sein.
Hat OpenGL nicht schon Kollisionserkennungen frei Haus? Oder willst du alles per Hand schreiben? Wie suchst du nach Kollisionen? Suchst du nach jedem Frame nach einer Schnittmenge oder berechnest du den Kollisionszeitpunkt exakt? |
Re: Kollision von Ellipsoiden
OpenGL hat Kollisionserkennung? Das wäre mir neu.
Und ich berechne die Kollision nach jedem Frame. |
Re: Kollision von Ellipsoiden
War nur geraten, ich habe mich bei unserem Projekt überhaupt nicht um die Darstellung gekümmert.
Wenn du die Kollision erst am Ende eines Frames testest, was machst du dann mit schnellen Objekten wie z.B. Schüssen? Wenn du eine dünne Wand und ein schnelles Geschoß hast, könnte es dir passieren, dass das Teil einfach durchfliegt. Oder was machst du, wenn du merkst, dass zwei Objekte, die eigentlich aneinander abprallen sollten, plötzlich ineinander stecken? Wir haben zu sechst ein Semester an dem Projekt gebaut und jeder hat mal eine kleine Nachtschicht eingebaut. Und das war 2D! Ich würde also sagen, dass dein Ziel, das alleine in brauchbarer Zeit und in 3D zu bauen, kaum erreichbar ist, wenn du die Kollisionen und Physik selbst schreiben willst. Schau dir doch mal OGRE oder sowas an, da hast du die ganze Physik schon drin. Das wär vielleicht etwas einfacher, wobei dir Gruppe, die damit gearbeitet hat, nicht fertig geworden ist. Wenn du also nicht die nächsten Jahre nur damit beschäftigt sein willst, solltest du vielleicht etwas weniger planen. |
Re: Kollision von Ellipsoiden
Okay, dann werde ich wohl eventuell doch auf Newton oder so umsteigen müssen. Newton ist aber, wie ich schonmal gemerkt habe, nicht unbedingt sehr schnell.
|
Re: Kollision von Ellipsoiden
Schau dir doch mal das Ogre an. So wie es aussieht ist das Teil sehr mächtig, und nach Auskunft des anderen Teams kann man sich da in 2Wochen genügend einarbeiten, um etwas damit anzustellen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz