Hauptmenü öffnen

PhysX

Physik-Engine und dazugehörige Hardware

PhysX ist eine quelloffene Physik-Engine des Unternehmens Nvidia. PhysX verlagert die Berechnung physikalischer Effekte in Computerspielen und Simulationssoftware auf Grafikkarten der GeForce-Serie des Herstellers. So wird der Hauptprozessor vom Aufwand dieser Berechnungen mit dem Ziel entlastet, die Ablauf- und Darstellungsgeschwindigkeit (Framerate) zu beschleunigen und/oder die Qualität der Darstellung durch zusätzliche Effekte zu erhöhen.

PhysX

Logo
Basisdaten

Entwickler Ageia, NVIDIA
Aktuelle Version 3.4.2[1]
(3. Dezember 2018)
Betriebssystem Windows, macOS, Linux (ohne GPU-Beschleunigung),
Wii, PlayStation 3, Xbox 360
Kategorie Physik-Engine
Lizenz 3-Klausel-BSD-Lizenz[2]
Offizielle Produkt-Website

Inhaltsverzeichnis

GeschichteBearbeiten

Am Beginn der Entwicklung von PhysX stand die Physik-Engine NovodeX, entwickelt von dem gleichnamigen Schweizer Unternehmen. Die NovodeX AG, ein Spin-off der ETH Zürich, wurde 2004 von dem Halbleiterhersteller Ageia übernommen. Diese entwickelte einen speziellen Physikbeschleuniger und vermarktete ihre Hardware gemeinsam mit der Software unter dem Namen PhysX.

Im Februar 2008 übernahm der Grafikchiphersteller Nvidia Ageia und integrierte die PhysX-Engine in das hauseigene CUDA-System, um sie auf Grafikkarten der GeForce-Serie lauffähig zu machen. Damit können die Physikberechnungen auch von der Grafikkarte durchgeführt werden, was zusätzliche Physikbeschleuniger optional macht. Allerdings muss die Grafikkarte CUDA unterstützen und ein aktueller Grafikkartentreiber installiert sein. Dies ist bei Nvidia seit der Grafikkartentreiberversion 177.83 der Fall. Es ist zudem möglich, eine separate Grafikkarte nur als Physikbeschleuniger zu verwenden.[3][4]

Im März 2015 kündigte Nvidia in Teilen die kostenlose Freigabe des PhysX-Quellcodes auf GitHub an, mit Beschränkung auf die CPU-berechnete Codeteile. Die auf CUDA aufbauende GPU-Variante blieb von dem Angebot ausgenommen. Interessenten müssen sich außerdem vor Freigabe bei Nvidias Entwicklerprogramm registrieren und den Nutzungsbedingungen zustimmen.[5] Diese Einschränkungen wurden am 3. Dezember 2018 aufgehoben, womit der Quellcode nun unter einer BSD Lizenz auf Github steht.[6]

AnwendungBearbeiten

Rechenintensive Vorgänge wie die Physik starrer Körper, die Simulation von Flüssigkeiten wie Wasser oder Lava, sowie das realistische Verhalten von Seilen, Haaren oder Kleidung stellen das Haupteinsatzgebiet der PhysX-Engine dar. Damit sind auch die folgenden Effekte realisierbar:

  • Explosionen mit Rauch und Trümmern
  • komplexe Figuren mit realistischen Bewegungen und Interaktionen
  • durch Wind bewegte Dinge, z. B. Laub, Papier, Funken, Wasser etc.
  • dichter, bewegte Objekte einhüllender Nebel

Neben PCs findet PhysX auch in den Spielkonsolen Wii (von Nintendo), PlayStation 3 (von Sony) und Xbox 360 (von Microsoft) Anwendung.

Anwendungsprogramme mit PhysX-Unterstützung sind:

KritikBearbeiten

Die Website Realworldtech[7] analysierte den PhysX-Code und prangert an, dass dieser in Verbindung mit Hauptprozessoren lediglich einen Kern zur Abarbeitung nutze. Wird aber der Grafikchip als „PhysX-Prozessor“ festgelegt, dann verpacke der GeForce-Treiber die Aufgaben automatisch in mehrere Threads, und die Bildrate schnelle in die Höhe. Außerdem nutze Nvidia lediglich veraltete x87-Befehle für Gleitkommaberechnungen, von denen Intel und AMD schon seit Anfang 2000 abraten. Effiziente SSE-Befehle, die ohne größeren Programmieraufwand eingebunden werden könnten und die Performance auf aktuellen CPUs deutlich steigern würden, nutze Nvidia bei PhysX nicht.

Daraus leitete Realworldtech den Verdacht ab, Nvidia bremse die Berechnung von PhysX-Effekten auf CPUs künstlich aus, um den GeForce-Grafikkarten ein weiteres Verkaufsargument angedeihen zu lassen.

Nvidias Senior-PR-Manager Bryan Del Rizzo wies einerseits die Vorwürfe der absichtlichen Ausbremsung der CPUs zurück, versprach aber anderseits in der PhysX-Version 3.0 automatisches Multithreading und SSE-Unterstützung.[8]

AMDs Senior Manager of Developer Relations, Richard Huddy, sprach sich in diesem Zusammenhang dafür aus, dass PhysX hoffentlich bald zusammen mit Glide und A3D im proprietären-API-Museum landet und von offenen Implementationen wie OpenCL und DirectCompute ersetzt wird.[9]

WeblinksBearbeiten

EinzelnachweiseBearbeiten

  1. NVIDIAGameWorks/PhysX-3.4. (englisch, abgerufen am 3. Dezember 2018).
  2. NVIDIA Extends PhysX for High Fidelity Simulations, Goes Open Source | The Official NVIDIA Blog. 3. Dezember 2018 (englisch, abgerufen am 3. Dezember 2018).
  3. Nvidia CUDA und PhysX im Überblick Seite 4 auf ComputerBase
  4. Breite Unterstützung für Physik-Beschleunigung per GPU News auf Golem.de
  5. Nvidia PhysX - Nvidia gibt Quellcode für Windows, Linux, OSX und Android frei - GameStar. (gamestar.de [abgerufen am 3. Dezember 2018]).
  6. NVIDIA Extends PhysX for High Fidelity Simulations, Goes Open Source | The Official NVIDIA Blog. In: The Official NVIDIA Blog. 3. Dezember 2018 (nvidia.com [abgerufen am 3. Dezember 2018]).
  7. PhysX87: Software Deficiency. Abgerufen am 3. Dezember 2018 (amerikanisches Englisch).
  8. Nvidia weist PhysX-Kritik zurück News auf hartware.de
  9. Archivierte Kopie (Memento des Originals vom 10. Mai 2010 im Internet Archive)   Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/www.thinq.co.uk