@ Locuza & yummycandy: das sind doch 2 unterschiedliche Sichtweisen - die von rechts und die von oben z.B. Wie die Spiel-Engine (Frostbite, Unreal, Cry...) innen drin kocht und tickt ist dann z.B. die Sicht von oben. Welche Physik-Engine (PhysX, HavoK, OpenCL...) die Spiele-Engine unterstützt ist dann de Sicht von rechts. Der unterstützte Renderer (DirectX, Vulkan, OpenGL...) wäre dann die Sicht von links von mir aus, oder besser von vorne, um in 3D zu bleiben. So gesehen hat der PCGH_Torsten recht.
Es ist eine Sichtweise von Oben nach Unten.
Ganz am Boden wäre so etwas wie x86, CUDA, OpenCL, DirectCompute etc.
PhysX und Havok sind selber Softwarebibliotheken geschrieben durch irgendeine Programmsprache und auf der Basis gewisser APIs.
OpenCL oder CUDA sind z.B. spezifizierte Compute-APIs, welche von vielen Herstellern mit entsprechenden Treibern unterstützt wird.
Worum es mir geht: Das besondere an der Engine, die gemeinhin als "PhysX" bezeichnet wird, ist die PhysX-Schnittstelle für Hardware-Beschleunigung. Entfernt man diese, bleibt eine weiterentwickelte Novodex-Physik-Engine für andere Berechnungswege, aber hat diese noch Vorteile gegenüber Havoc & Co? Spannend wäre eine Schnittstelle, mit der über die PhysX-Schnittstelle vergebene Befehle, also explizit die Physikberechnungen aller PhysX-Spiele einschließlich bereits bestehender, beispielsweise auf einer Radeon berechnet werden können. Da reden wir aber vom Backend auf der anderen Seite der Schnittstelle, nicht vom Software-SDK.
Laut Benchmarks (Etwas biased von einem Nvidia Entwickler) und einem Spielentwickler ist CPU-PhysX die schnellste Softwarebibliothek auf dem Markt.
Coder Corner >> Archivio Blog >> The evolution of PhysX (11/12) - More sweep tests
Somit sind Vorteile gegenüber Havok & Co gegeben, noch mehr wenn man alles zusammenzählt, was die Technik in Bezug auf Features, Stabilität und Performance angeht und daneben die Kosten, die Dokumentation und das öffentliche einsehen und teilen von Informationen.
Beim drüberfliegen auf GitHub war es für mich als Laie nicht erkenntlich, ob der CUDA-Solver auch mitenthalten war, was die Portierung bezüglich eines ähnlichen Solvers über OCL oder DirectCompute natürlich massiv erleichtern würde.
Allgemein würde ich mir da aber keine großen Hoffnungen machen, dass in naher Zukunft sich dort etwas bewegen würde und jemand einen anderen Solver herstellerübergreifend implementiert und dann noch Spieleinbindungen geschehen, womit GPU-PhysX bei alten Spielen bei allen läuft.
Es ist vor allem langfristig interessant was Leute daraus lernen, entnehmen, modifizieren und umsetzen.
Die Möglichkeiten groß und das ist auf jeden Fall ein massiver Schritt den Nvidia dort gegangen ist.
Angesichts immer leistungsfähigerer CPUs: Braucht man überhaupt noch eine Entlastung von Physik- oder Stoffberechnungen durch die GPU?
Es gab ja früher auch HavokFX als Alternative zum "normalen" CPU-Havok. Aber kam das irgendwo überhaupt zum Einsatz?
HavokFX wurde relativ früh beerdigt, nachdem Intel Havok übernommen hat, ob Zufall oder Kalkül, keine Ahnung.
In den letzten Jahren hat man aber GPU R&D betrieben, ob da schon was für die kommerzielle Nutzung abgefallen ist, weiß ich auch nicht, aber dank mangelnder PR und dem Echo im Internet wahrscheinlich nicht.
Und aufgrund unterschiedlicher Algorithmen und Stärken&Schwächen bei CPUs respektive GPUs für eine bestimmte Sorte davon, wird man immer beide Einheiten für gewisse Aufgaben brauchen.
Teilweise wandert mal eine Aufgabe zu einer anderen Unit.