Ich möchte eine Physik-Engine selber schreiben und brauche Hilfe bei der Physik!



  • Die erinnerung schrieb:

    Also wenn ich die Grundlagen nicht schaffen sollte, glaube ich würde es keiner schaffen.
    Ich habe im Gebiet der Logim einen IQ von 140! Und dass will was heißen!

    Man misst den IQ aber nicht nur in einem Gebiet 😉



  • Und 4 Byte pro Würfel, ist das nicht etwas wenig? Man braucht doch mindestens 4 Werte (Einmal die Position und dann noch die Länge der Kante).
    Und die einzelnen Werte werden wohl kaum nur ein Byte belegen.



  • Auch ich habe daran gedacht, dass man nicht alle Würfel in der Gesamten welt prüfen kann.

    Deshalb habe ich die elt (gedanklich) in 10*10*10 große Chunks eingeteilt.
    D.h., dass ich nur in den Chunks rechnen werde, in denen sich ein bewegliches Objekt befindet. Das heißt auch wiederum, dass die Möglichkeiten der Kollisionen mit anderen Flächen sehr gering ist, weil kaum Flächen da sind.

    Und noch ein Trick:

    Falls die Würfel noch nicht "abgebrochen" sind, befinden sie sich in einem festen Raster. und es werden nur die Flächen der Würfel mit in die Rechnungen einbezogen (und gerendert), die relevant sind, also sichtbar. Und sichbar sind nur die, die mit keinem Würfel kollidieren, aslo nur die Außenflächen, was die Rechenleistung deutlich reduziert!

    und @zeusosc: Gesamt bin ich auf 127. Ich bin mir aber nicht mehr sicher.



  • 3,8 GB? Naja, mein Rechner ist zwar schon etwas alt, aber in meinen RAM passt es nicht 😮



  • Walli schrieb:

    Die erinnerung schrieb:

    Also wenn ich die Grundlagen nicht schaffen sollte, glaube ich würde es keiner schaffen. Ich habe im Gebiet der Logim einen IQ von 140! Und dass will was heißen!

    Ratschlag für die Zukunft: Wenn man Hilfe braucht, nicht so tun als bräuchte man sie eigentlich nicht :D.

    Ich kann die Grundlagen aber noch nicht und deshalb bin ich hier. ich weiß auch nicht, wo ich mir solches Wissen aneignen kann.

    So ok. ich habe heute (leider) nicht genug zeit, um mir alles durchzulesen.

    Deshalb.

    1. Wir nehemen an, ich hätte das problem mit der Kollisionserkennung verstanden (das lese ich mir morgen durch und verstehe es dann 😃 )
    2. Wir nehmen an, ich hätte eine 2D-Raum
    3. Jetzt müsste ich wissen, wie amn berechenet, wenn ein solches Quadrat auf eine Kante fällt und überkippt, wie man das berechnent. (erstmal ohne Reibung und elastische Kollisionen) Also ein Quadrat fällt auf eine Kante und kippt über, ohne dass das Quadrat abrutscht, noch dass es wieder zurückspringt.

    kann mir da jemand helfen?



  • Für platzmangel gibt es ja virtuellen Speicher,..

    ist aber nicht gerade performant...



  • Passive Chunks (also, in denen nix passiert) kann man auslagern, den Rest kann man im RAM lassen.

    Mincraft machts ähnlich.



  • Die erinnerung schrieb:

    ... (mit 10 habe ich mir selbst den Schiefen Wurf und mit 12 den Ballistischen Wurf angeeignet (ich bin 16)) ...

    Da sich seine motorischen Fähigkeiten erst sehr spät entwickelt haben, könnte es doch durchaus sein, dass sein Intellekt umso stärker ausgeprägt ist.



  • Ich sprach von der Physik dahinter...



  • sry ich konnt nich anders 🙂



  • @Die erinnerung: Mal ne Frage, wenn du wirklich so inteligent bist, wie du selber schreibst, warum präsentierst du dich dann hier so?



  • Die erinnerung schrieb:

    Ich sprach von der Physik dahinter...

    Die Physik hinter Kollisionen sind Erhaltungssätze. Energieerhaltung, Impulserhaltung, Drehimpulserhaltung. Das war's schon. Wenn Du die vernünftig mit einander kombinierst, kriegst Du raus, wie sich die Körper nach der Kollision weiterbewegen.



  • Gregor schrieb:

    Die erinnerung schrieb:

    Ich sprach von der Physik dahinter...

    Die Physik hinter Kollisionen sind Erhaltungssätze. Energieerhaltung, Impulserhaltung, Drehimpulserhaltung. Das war's schon. Wenn Du die vernünftig mit einander kombinierst, kriegst Du raus, wie sich die Körper nach der Kollision weiterbewegen.

    Nur bei Stößen extremer form(ideal inelastisch/elastisch)



  • Fang mit 2D an und suche dir Beispiele: Polycolly.zip enthaelt ein recht gutes Tutorial mit miserablem Code. Macht aber nichts, denn soviel Code gibt es nicht. Einfach mal danach suchen und Bescheid sagen, wenn sich diese Datei noch irgendwo im Internet befindet.



  • Anstatt Lennard Jones könnte man für Würfel auch Leicht deformierte (axiasymmetrische) Rechteckpotentiale verwenden.
    Am besten einen Gaußgefitteten /gefalteten,
    dann hätte man jedenfalls einen realitätsnäheren Fall.
    (Die Gegenkraft nimmt, angenommen, exponential mit der Penetrationstiefe zu,
    bevor es zurückfedert.., wird das Maximum des Potentials überschritten deformiert
    sich der Körper (elastisch), ansonsten "federt" dieser ab einen gewissen Zeitpunkt zurück (inelastisch))

    Damit der Würfel durch die Potentialgleichungen resultierend auch
    Rotationsbewegungen ausüben kann, müssen die Felder an drei (linear) unabhängigen
    Punkten innerhalb des Würfels berechnet werden, welche IMMER fix zueinander sind.
    Jeder dieser Punkte hat dann seinen Ort und seine vektorielle Geschwindigkeit
    gespeichert.

    Inelastisch:
    Der Würfel lässt sich also aus drei zueinander festen Vertices (hier ist jetzt
    nicht das Raumelement, sondern wirklich der "Ort", quasi vektor, gemeint. Siehe post vorher.) darstellen.
    Den Ort des Würfels ist der Vektor auf den ersten dieser Vertices. Die Normale
    kannst du aus dem Kreuzprodukt der ersten Beiden erstellen. (Falls benötigt)
    Bei der Berechnung der resultierenden Kräfte ist darauf zu achten, das die Kräfte auf
    den Verbindungslinien der Vertices sich kompensieren, bzw Kräfte in gleicher Richtung gewichtet summieren.
    Die Forderung ist ja, das die Vertices zueineander einen konstanten Abstand haben.

    Elastisch:
    Hier wird es kompliziert: Du musst also auch das Potential verändern,
    d.h. es wird dann nicht mehr axialsymmetrisch sein. Leider geht dies auf Speicherlast.
    Es müssen also noch die Potentiale pro Würfel und jeweils pro Seite gespeichert werden. Das würde ich mir für später aufheben.

    Also ich würde dir Vorschlagen:

    Berechne doch mal einen Kraftstoß auf ein Dreieck mit jeweils einen Maßepunkt
    mit der Masse m an der Spitze.
    Stelle die Bewegungsgleichung auf und ermitle explizit die Gleichung für Ort, Geschwindigkeit und Beschleunigung. 💡

    (und hier bitte posten)

    greetz



  • Namenloser342 schrieb:

    Nur bei Stößen extremer form(ideal inelastisch/elastisch)



  • seux schrieb:

    @Die erinnerung: Mal ne Frage, wenn du wirklich so inteligent bist, wie du selber schreibst, warum präsentierst du dich dann hier so?

    Die Frage wurde schon beantwortet: http://de.wikipedia.org/wiki/Dunning-Kruger-Effekt 😃



  • Am lustigsten finde ich eigentlich, wie hier einige wirklich sachliche Tipps geben. 😃

    @Threadstarter: Schreib wie alle anderen Kiddies auch erstmal ein MMORPG!



  • this->that schrieb:

    Am lustigsten finde ich eigentlich, wie hier einige wirklich sachliche Tipps geben. 😃

    Was ist daran lustig? Das ist selbstverstaendlich. 😉

    Wir hatten vermutlich alle mal unsere Zeit, in der wir vielleicht im Info-Kurs in der Schule bei weitem der Beste waren und dachten, dass das auch jenseits davon so waere und wir sowieso alles besser koennen als die anderen. Wir konnten immerhin besser als der Lehrer programmieren. Ich hatte so eine Zeit zumindest. Die Frage ist, wie man dann seine eigenen Grenzen kennenlernt. Ich halte es in so einem Fall fuer gar nicht so dumm, dass man sich grosse Ziele setzt. ...und dann scheitert man. Das ist ok, so eine Erfahrung muss man mal machen und danach ist man auch gleich etwas demuetiger. 😉 WENN der Threadersteller das ganze nicht gefaked hat, dann ist er in so einer Situation, in der er sich fuer den Tollsten und Besten haelt. Ich finde, er sollte selbst herausfinden, wie weit das geht. Das braucht man ihm nicht einpruegeln.



  • zeusosc schrieb:

    ...
    Also ich würde dir Vorschlagen:

    Berechne doch mal einen Kraftstoß auf ein Dreieck mit jeweils einen Maßepunkt
    mit der Masse m an der Spitze.
    Stelle die Bewegungsgleichung auf und ermitle explizit die Gleichung für Ort, Geschwindigkeit und Beschleunigung. 💡

    (und hier bitte posten)

    greetz

    Ich arbeite an den Berechnungen. Ich denke morgen müsste ich fertig sein. ich habe im Moment kaum Zeit.


Anmelden zum Antworten