PhysX

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 8. Oktober 2016 um 14:52 Uhr durch Ontogon (Diskussion | Beiträge) (nv Treiber, lf). Sie kann sich erheblich von der aktuellen Version unterscheiden.
Zur Navigation springen Zur Suche springen
PhysX

Logo
Basisdaten

Entwickler Ageia
Aktuelle Version 9.16.0318 [1]
373.06 (Nvidia-Treiber) [2]
(Vorlage:Datum – die Form mit drei unbenannten Parametern oder anderen einzelnen Zeiteinheiten ist veraltet und wird nicht mehr unterstützt. Bitte gib das Datum einfach im Klartext an.)
Betriebssystem Windows, macOS, Linux (ohne GPU-Beschleunigung), Wii, PlayStation 3,
Xbox 360
Kategorie Physik-Engine
Lizenz proprietär
Nvidia-PhysX-Entwicklerseite

PhysX bezeichnet eine proprietäre Physik-Engine der Firma Nvidia. PhysX verlagert die Berechnung physikalischer Effekte in Computerspielen und Simulationssoftware auf Grafikkarten der Nvidia 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

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]

Anwendung

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

Die Website Realworldtech[6] 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.[7]

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.[8]

Weblinks

Einzelnachweise

  1. Downloadseite von PhysX bei nvidia.com, abgerufen am Vorlage:Datum – die Form mit drei unbenannten Parametern oder anderen einzelnen Zeiteinheiten ist veraltet und wird nicht mehr unterstützt. Bitte gib das Datum einfach im Klartext an. (englisch).
  2. Downloadseite des Nvidia-Treibers bei nvidia.com, abgerufen am Vorlage:Datum – die Form mit drei unbenannten Parametern oder anderen einzelnen Zeiteinheiten ist veraltet und wird nicht mehr unterstützt. Bitte gib das Datum einfach im Klartext an. (teilweise englisch).
  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
  6. http://realworldtech.com/page.cfm?ArticleID=RWT070510142143&p=1
  7. Nvidia weist PhysX-Kritik zurück News auf hartware.de
  8. http://www.thinq.co.uk/news/2010/3/8/amd-game-devs-only-use-physx-for-the-cash/