Kamerabewegung mit Geschwindigkeitsvektoren



  • Hi!

    Ich implementiere gerade in meiner 3D Welt eine einfache Physikengine und habe dazu der Kamera einen Geschwindigkeitsvektor verpasst.

    Momentan stehe ich nur bei einer mathematisch wahrscheinlich einfachen Angelegenheit auf dem Schlauch.

    Bei Tastendruck wird ein Geschwindigkeitsvektor berechnet, der zum momentanen Geschwindigkeitsvektor addiert wird. Okay, das funktioniert, nur kann ich so die Kamera so schnell beschleunigen wie ich möchte.

    Jetzt sei eine maximale Laufgeschwindigkeit gegeben (eben die Länge des Geschwindigkeitsvektors).

    Meine Frage: Wie berechne ich denn den neuen Geschwindigkeitsvektor, wenn ich nicht möchte, dass die Kamera weiter in eine Richtung beschleunigt werden soll, wenn sie schon schneller als das Limit ist ?

    Beispiel: Kamera fliegt super schnell vorwärts. Drückt man vorwärts, soll nicht weiter beschleunigt werden. Drückt man seitwärts, wird man abgelenkt. Drückt man rückwärts, bremst man.

    Danke für eure Hilfe!

    Gruß,
    Tim



  • Was mir spontan einfallen würde:

    1. Vektoren addieren
    2. Betrag vom neuen Vektor berechnen
    3. Betrag in den Interval [0, max] bringen
    4. Vektor normieren und entsprechend skalieren


Anmelden zum Antworten