PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Physics Engines


z3ck3
2015-08-05, 22:42:48
Hey,

in den News vom 4. August wurde auf den Artikel bei Golem zu Havok FX hingewiesen (Havok FX kehrt zurück (http://www.golem.de/news/physik-engine-havok-fx-kehrt-zurueck-1508-115561.html))

Ich hab allgemein eine Frage zu den Engines, OpenCL etc. die mir schon länger im Kopf herumgereist:

Gibt es eine Engine die die OpenCL Fähigkeiten einer CPU (bzw. deren GPU) nutzt? Wenn nicht, warum nicht?

Im großen und ganzen gibt es ja eine sehr weit verbreitete Konfiguration:
Intel oder AMD CPU mit interner GPU und eine zusätzliche GPU.

Des weiteren haben natürlich alle gängigen, auch lowend GPUs die gleichen Fähigkeiten wie die aktuellen internen GPUs. Bisher ist mir aber nur eine Engine/API bekannt die die Fähigkeiten einer GPU überhaupt nutzt, und das ist PhysX.

Dabei liegt die Power der internen GPUs beim Spielen in der Regel bracht. Die CPU selbst ist für stark parallelisierbare Berechnungen (und das ist bei Pysikberechnungen mit vielen Objekten der Fall) überhaupt nicht ausgelegt. Die niedrige Bandbreite der iGPU sollte da eigentlich auch kein Problem darstellen.

Also warum wird z.b. Havok FX nicht auf OpenCL getrimmt? Highend User die Plattformen ohne iGPU kaufen können sich ja problemlos eine dGPU dazu stecken. Die Hardwareunterstützung ist ja mehr als breit.

z3c

Darkman.X
2015-08-06, 12:00:44
"Bullet (https://de.wikipedia.org/wiki/Bullet-Physik)" kann OpenCL nutzen. GTA4+5 sind aber laut Wiki die einzigen AAA-Titel, die es nutzen. Aber was ich hier und dort im Forum gelesen habe, soll Bullet nicht sehr performant sein. Aber das könnte auch nur Nvida-Propaganda sein ;)

Intel will primär CPUs verkaufen, nicht iGPUs. Deren Verbreitung steigt automatisch mit dem Verkauf von CPUs. Wenn Havok auf OpenCL aufbauen würde, könnten ja auch dGPUs davon profitieren, gegen die CPUs/iGPUs keine Chance haben. Das würde den CPU-Verkauf nicht fördern.

Das ist vermutlich auch einer von vielen Gründen wieso es kein PhysX für AMD gibt. Deren GPUs könnten ja besser performen als die von Nvidia.

Interessant wäre, welche Engine im direkten Vergleich besser wäre. Havok oder PhysX für CPUs? Ich vermute mal PhysX, weil das doch sehr verbreitet sein soll, auch auf Konsolen.

Gimmick
2015-08-06, 15:00:06
Havok kann auch OpenCL. Gabs doch mal vor 2 oder 3 Jahren ein Video von.

Warum daraus nichts geworden ist? Keine Ahnung, hab ich mich auch schon gefragt.

y33H@
2015-08-06, 15:26:54
Die haben zB auch eine GPU-Partikel-Demo auf der PS4 gezeigt, das sind aber reine R&D-Nummern derzeit.

aufkrawall
2015-08-06, 15:46:59
Warum daraus nichts geworden ist? Keine Ahnung, hab ich mich auch schon gefragt.
Weil Khronos wohl für den OpenCL -> D3D Interop nicht vorschreibt, dass dieser ohne RAM-Copyback auskommen muss.
Entsprechend scheiße läuft er auf AMD und NV hat es mit dem Win 10 Release-Treiber mal eben komplett für D3D9 einfach so kommentarlos gestrichen.
OpenCL -> Minenfeld für Entwickler. Wahrscheinlich noch viel schlimmer als OGL. An Overhead würd ich auch mal ein dickes Fragezeichen machen.

Novum
2015-08-10, 20:57:36
OpenCL war ein Fehler von Khronos. Sie hätten das von Anfang an in OpenGL einbauen müssen zusammen mit Headless-Unterstützung. Jetzt haben sie den Salat, dass es sowohl OpenCL als auch Vulkan und OpenGL-Compute-Shader gibt.

Niemand wird für Spiele OpenCL verwenden, die Treibersituation ist noch schlimmer als bei GL. Dazu kommt dann noch Interop wo man auch beten muss, dass es funktioniert.

z3ck3
2015-08-19, 04:10:37
Wenn man als Entwickler die Möglichkeit hat ein Aufgabe in bestimmter Hardware schneller berechnen zu können als auf der CDU, welche APIs hat man da denn zur Verfügung, wenn es um den konkreten Fall von z.b. Physik Simulationen mit vielen einzelnen Elementen, oder auch der KI eines Spiels geht bei dem viele einzelne Einheiten autonom agieren. Das klingt ja fast so als wenn man das Problem sowohl mit OpenCL, als auch OpenGL(-Compute-Shader) als auch Vulkan angehen könnte (PhysX ist außen vor, das funktioniert beben nicht auf einer Intel GPU oder AMD GPU).

Besitzt Vulcan entsprechende Features?

Auf Softwareseite hat ja immerhin z.b. Adobe von CUDA zu OpenCL gewechselt (jedenfalls wird AMD mittlerweile unter Windows unterstützt, nachdem Adobe unter OSX erst nur AMD unterstützt hat).

Hätte Vulcan das Potential endlich eine Herstellerunabhängige Physik Engine zu ermöglichen?