In Anlehnung an meine vorherige Frage : Ich habe den Ball ziemlich realistisch von Oberflächen abprallen lassen, auf die er trifft. Jetzt möchte ich es aus der Reibung des Treffers heraus drehen lassen .
Dies zu zeigen ist einfach genug: Ich drehe den Ball bei jedem Tick um seine Winkelgeschwindigkeit und wende dieselbe Drehung an, wenn er gerendert wird.
Wenn ein Ball auf eine Wand trifft, weiß ich, dass die Rotationsgeschwindigkeit von ...
- die Anfangsgeschwindigkeit des Balls beim Auftreffen auf die Oberfläche
- die Reibungskoeffizienten der Kugel und der Oberfläche (physikalische Konstanten)
- der Einfallswinkel (der Winkel zwischen dem ankommenden Geschwindigkeitsvektor des Balls und der Flächennormalen).
Der Einfallswinkel wird durch das Skalarprodukt der Aufprall- und Austrittsgeschwindigkeitsvektoren des Balls approximiert. (1 bedeutet high spin, -1 bedeutet no spin und alles andere relativ dazwischen)
Multiplizieren Sie alle oben genannten Werte und stellen Sie sicher, dass sie in den Bereich 0 - 1 transformiert und mit der maximalen Rotationsgeschwindigkeit multipliziert wurden. Der Ball schien erwartungsgemäß mit der Rotationsgeschwindigkeit zu reagieren. Abgesehen von einer Sache: Es würde sich immer im Uhrzeigersinn drehen (wegen positiver Werte).
Ist das eine gute Methode? Können Sie sich einen einfacheren Weg vorstellen?
Wenn diese Methode in Ordnung zu sein scheint, was fehle ich? Woher weiß ich, wann sich der Ball gegen den Uhrzeigersinn drehen soll?