PhysX

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
PhysX

Logo
Basisdaten

Entwickler Ageia, Nvidia
Aktuelle Version 9.21.0713[1]
(15. Oktober 2021)
Betriebssystem Windows, macOS, Linux (ohne GPU-Beschleunigung),
Wii, PlayStation 3, Xbox 360
Kategorie Physik-Engine
Lizenz 3-Klausel-BSD[2]
Offizielle Produkt-Website

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.

Geschichte[Bearbeiten | Quelltext bearbeiten]

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. Dieser entwickelte einen speziellen Physikbeschleuniger und vermarktete seine 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 (bei Nvidia ab Version 177.83) installiert sein. 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-berechneten 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]

Anwendung[Bearbeiten | Quelltext bearbeiten]

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:

Kritik[Bearbeiten | Quelltext bearbeiten]

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]

Weblinks[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. www.nvidia.com.
  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