Kontynuując moje poprzednie pytanie : piłka odbija się bardzo realistycznie od powierzchni, na które uderza. Teraz chciałbym, aby obracała się od tarcia .
Pokazanie tego jest dość proste: obracam piłkę o prędkość kątową co tyknięcie i stosuję ten sam obrót podczas renderowania.
Kiedy piłka uderza w ścianę, wiem, że na prędkość obrotu wpływa ...
- piłka jest prędkość początkowa po uderzeniu powierzchni
- że współczynniki tarcia kuli i powierzchniowych stałych (fizycznego)
- kąt natarcia (kąt pomiędzy kuli wejściowego wektora prędkości i normalną do powierzchni).
Kąt padania aproksymowany jest przez iloczyn iloczynu wektorów prędkości uderzenia i wyjścia piłki. (1 oznacza wysoki spin, -1 oznacza brak spinu, a wszystko inne względnie pomiędzy)
Mnożąc wszystkie powyższe elementy razem i upewniając się, że zostały one następnie przekształcone do zakresu 0-1 i pomnożone przez maksymalną prędkość obrotową, piłka wydawała się reagować na prędkość obrotową zgodnie z oczekiwaniami. Z wyjątkiem jednej rzeczy: zawsze obracałby się zgodnie z ruchem wskazówek zegara (z powodu dodatnich wartości).
Czy to dobra metoda? Czy możesz wymyślić prostszy sposób?
Jeśli ta metoda wydaje się w porządku, czego mi brakuje? Skąd mam wiedzieć, kiedy piłka powinna się obracać przeciwnie do ruchu wskazówek zegara?