Archiv verlassen und diese Seite im Standarddesign anzeigen : Physik Engine von GPU berechnen lassen
Godmode
2004-11-30, 22:57:46
Hab gerade die heutige News gelesen und bin von der HL2 CPU Limitiertheit etwas inspiriert worden.
Wäre es möglich die Physik Engine in die GPU zu verlangern? Da ja HL2 teilweise CPU limiert ist könnte man ja etwas von der GPU berechnen lassen.
Macht so etwas überhaupt Sinn? Partikelsysteme kann man ja zb auch schon von der GPU berechnen lassen.
freu mich schon auf die Antworten.
Würde auf heutiger HW einen Readback aus dem VRAM erfordern -> No go.
Auf WGF HW ist sowas vielleicht möglich, aber Physik erfordert eine viel bessere Programmierbarkeit als ein Partikelsystem, von daher ist die CPU gerade für die Physik eigentlich prädestiniert.
Irgend was will sie ja auch noch machen ;)
Ich hab mich mit Shader-Programmierung noch nicht im Detail beschäftigt, kann dir aber trotzdem ein paar Dinge die dagegen sprechen aufzählen:
1) Das Rücklesen der Ergebnisse ist auf aktuellen Grafikkarten langsam
2) Bei einigen Spielen läuft die Physikengine nicht mit der gleichen Updaterate wie die Grafikengine.
3) Wenn Kräfte von Bedingungen abhängig sind wird es kompliziert zu implementieren bzw. macht die CPU wieder einen großen Teil der Arbeit. Leider gilt das für viele Kräfte in Physikengines.
Bei Partikelsystemen gibt es alle 3 Probleme nicht.
Andere Ansichtsweiße: Die GPU ist primär ein Streamprozessor, sie mag es auf viele gleiche Daten die gleiche Operation auszuführen (Shader), aber Physik ist das krasse Gegenteil einer Streamoperation. Das gleiche gilt für AI und Pathfinding.
gpus werden wohl nicht die lösung sein, aber in 2-4 jahren könnte ich mir vorstellen, dass erste gameengines multicore cpus nativ unterstützen..
Mave@Work
2004-12-03, 00:23:53
gpus werden wohl nicht die lösung sein, aber in 2-4 jahren könnte ich mir vorstellen, dass erste gameengines multicore cpus nativ unterstützen..
Das wird schneller gehen.
Engines kann man schliesslich parallelisieren bzw. in threats programmieren.
Ich denke da gerade an Pathfinding oder aehnliches.
Pathfinding? Wenn man A* nimmt (das ist das übliche Verfahren), dann lässt sich da nicht besonders viel parallelisieren, eine for-schleife mit typischerweise wenig Schritten, ich bin mir recht sicher das es grade da nix bringt.
Wenn es nur ums Threads unterstützen geht, dann ist die einfachste Lösung eine Programmiersprache zu nehmen die Threading implizit unterstüzt ohne dass der Programmierer irgendwas dafür machen muss. Die für Spiele realistische Lösung sind parallelisierende Compiler und/oder OpenMP
vBulletin®, Copyright ©2000-2025, Jelsoft Enterprises Ltd.