Ich habe kürzlich ein Projekt gestartet, bei dem eine Physik-Engine gebaut wurde. Ich hatte gehofft, Sie könnten mir einen Rat geben, der sich auf Dokumentation und / oder die besten Technologien dafür bezieht.
Zunächst habe ich gesehen, dass Game-Physics-Engine-Development für die anstehende Aufgabe sehr empfehlenswert ist, und ich habe mich gefragt, ob Sie mir eine zweite Meinung geben könnten. Soll ich das verstehen? Außerdem bin ich beim Stöbern in Amazon auf Game Engine Architecture gestoßen, und da ich meine Physik-Engine für Spiele entwickeln möchte, dachte ich, dass dies auch eine gute Lektüre sein könnte.
Zweitens weiß ich, dass das Simulieren von Physik sehr rechenintensiv ist, daher würde ich gerne entweder CUDA oder OpenCL verwenden. Im Moment neige ich zu OpenCL, da es sowohl auf NVIDIA- als auch auf ATI-Chipsätzen funktionieren würde. Was schlagen Sie vor?
PS: Ich werde dies in C ++ unter Linux implementieren.
quelle
Maik hat recht, Baraffs Papiere sind ein hervorragender Anfang, aber vergessen Sie nicht, dass Chris Heckers Artikel über Starrkörperdynamik geschrieben hat: http://chrishecker.com/Rigid_Body_Dynamics !
Auch sein Rat zu "[..] Sie werden Ihren Motor wegwerfen" ist völlig richtig. Aber du wirst viel lernen!
Bezüglich des CUDA / OpenCL-Teils Ihrer Frage: Wenn Sie CUDA kennen, wird der Wechsel zu OpenCL sehr einfach. Ich würde empfehlen, zuerst CUDA zu lernen, da es so viele gute Tutorials, Beispielcode und Berechnungsbibliotheken gibt. Beispielsweise:
Aber seien Sie sich bewusst: Der Einstieg in CUDA ist einfach, der Einstieg in die Physiksimulation ist etwas schwieriger, aber beides zu kombinieren ist eine ziemliche Herausforderung!
quelle
Ich habe auch mit Baraff angefangen, aber es ist schon etwas älter. Was Sie brauchen, sind iterative Löser und das beste Paper-Imo dazu sind Erin Cattos iterative Dyanmics . Sie haben alles, was Sie brauchen, um Ihre Physik-Engine zu implementieren. Sie können sich ein wenig in Erlebens Doktorarbeit vertiefen, wenn Sie mehr Details benötigen (wie Gelenke und mehr mathematische Dinge), aber das war es auch schon. Ich wünschte, ich hätte es von Anfang an gefunden - gehen Sie ein bisschen durch das Bullet-Forum, es gibt viele Informationen (vielleicht zu viel).
In Bezug auf Bücher sind viele Bücher enttäuschend, aber ich empfehle Physics Based Animation von Kenny Erleben oder Game Physics Pearls.
Ich kenne nicht viel CUDA / OpenCL (obwohl ich es immer wollte), aber du solltest auf jeden Fall Takahiro Haradas Arbeit ausprobieren.
quelle