TweakPC



NVIDIA PhysX für GeForce - Grafikkarte als Physikbeschleuniger (2/14)

Wozu ist PhysX gut? Was kann man mit PhysX machen?

Sicher kann sich nicht jeder vorstellen was PhysX nun eigentlich genau macht, aber das Konzept ist zum Glück recht einfach zu erklären. PhysX ist - ähnlich Wie DirectX für 3D - eine Schnittstelle/Bibliothek für physikalische Berechnungen. Es gibt ganz typische Beispiele für solche Berechnungen die immer wieder auftauchen und auch in den Demos zu PhysX immer wieder gezeigt werden. Beispiel hierfür sind:

  • Das fließen von Wasser, Wellen, Wasserspritzer
  • Bewegungen von weichen Objekten wie Stoff, eine wehende Fahne, Ein Decke die über ein Objekt gelegt wird usw.
  • Das "Fliegen" oder auch "Zerbrechen" von Gegenständen. Explosionen, Zusammenbrechende Häuser oder Wände, Fallende Bäume usw.

Es gibt Unmengen weitere Beispiele, die man sich selbst ausmahlen kann und es leuchtet schnell ein, dass all diese Dinge Spielen mehr Realität verleihen. Es macht sicherlich mehr Spaß in einem Spiel durch eine "lebendige" Welt zu laufen, als in einer starren Umgebung, die sich nie verändert zu spielen. Kurz gesagt PhysX soll eigentlich nur eins, den Spaß Faktor erhöhen. Wenn man will kann man PhysX vielleicht am besten noch mit einem "tollen Sound" im Spiel vergleichen. Was wäre ein Computerspiel ohne Ton - richitg - langweilig. Vielleicht werden wir bald genauso über Spiele ohne "Physik" denken.

 

Update 6.8.2008

Um diese Effekte in Spielen zu Realisieren bietet NVIDIA das PhysX SDK an und dieses ist nicht etwa auf GeForce Karten beschränkt. PhysX funktioniert genauso immer noch mit der alten AGEIA Physik Karte oder auch mit der normalen CPU. Mittlerweile werden ja auch Anstrengungen unternommen PhysX auch auf ATI Radeon Karten laufen zu lassen, was die Attraktivität von PhysX sicherlich noch einmal steigern würde.

Der Knackpunkt bei all dem liegt in der Leistungsfähigkeit der Hardware in Bezug auf Physikberechnungen. Hierbei handelt es sich oft um massiv parallelisierbare Berechnungen und diese können von einer modernen GPU erheblich schneller durchgeführt werden als von einer CPU. Einige Physikberechnungen sind auch nicht parralelisierbar sonder eher serieller Natur und können daher auf einer schnellen CPU schneller berechnet werden. PhysX steuert hierbei je nach Art der Effekte wo die Berechnungenausgeführt werden.

PhysX kann sich auch der Leistung des Systems anpassen. Expolodiert zum Beispiel ein Gebäude in viele Teile, so kann die Anzahl der Teile - von denen ja jedes einzelne berechnet werden muss - variiert werden. so könnte das gleiche Gebäude bei PhysX berechnung auf der GPU in hundert Teile explodieren, während es bei CPU Berechnung in vielleicht nur 10 Teile explodieren würde. Diese Umstand sollte immer im Hinterkopf behalten werden, denn er spielt eine große Rolle bei der Ingame Performance.

Das PhysX SDK stellt dem Spieleprogrammierer also verschiedene Effekte zur Verfügung, die dann auf den verschiedenen Hardware Platformen umgesetzt werden. Und je nachdem wie Leistungsfähig diese Plattform ist, variiren auch die Effekte die dargestellt werden können.

Würde man nicht so vorgehen wäre es in Zukunft extrem schwer spiele für "Jederman" zu programmieren, denn man könnte sonst PhysX nur ein oder Ausschalten. Gamer mit weniger moderner Hardware müssten komplett auf die Effekte verzichten weil sonst die Gesamtperformance zu schlecht würde und sie nur noch eine Einzelbildschaltung sehen könnten. So aber lässt sich auch für diese PhysX aktivieren nur eben mit weniger Effekten.

Was kann und tut PhysX nicht!

Wie wir anfangs bereits sagten, mit PhysX werden über Hardware Berechnung zusätzliche Inhalte bereit gestellt, die auf Physik basieren. PhysX kann diese Dinge nicht etwa Anzeigen oder sie "automatisch" in alten Games erzeugen.

Genau hier liegt auch der Punkt wieso PhysX die Performance eher verschlechtert, denn das was PhysX berechnet muss auch vorbereitet und angezeigt werden und dafür ist die 3D Karte zuständig. Wenn also mit PhysX etwas Explodiert und in 1000 Teile zersplittert, dann berechnet PhysX wo und wie diese Teile herumfliegen. Die Grafikkarte muss dies alles dann auch anzeigen. Ohne PhysX gab es die 1000 Teile überhaupt nicht und das Auto wäre evtl. nur komplett oder in 5 Teilen herumgeflogen.

Es leuchtet ein, dass, je komplexer die Situation wird, dies der Grafikkarte ordentlich zu schaffen macht. Genau aus diesem Grund macht es auch meist keinen Sinn "3D Performance" mit und ohne PhysX zu vergleichen, denn in der Regel werden hier komplett andere 3D-Szenen angezeigt, es sei den in speziellen Benchmarks, die die Physik Berechnung in gleicher weise über die CPU durchführen. Die massiven Performance Einbrüche, die dann dort zu sehen sind, basieren aber darauf, das die CPU so stark ausgelastet ist und haben eigentlich wenig mit der 3D Karte bzw. Performance zu tun. Prinzipiell könnte man hier also auch direkt auf die 3D Darstellung verzichten und nur Physikberechnungen benchmarken. Genau das macht übrigens der neue 3DMark Vantage im CPU Test 2.

ueber TweakPC: Impressum, Datenschutz Copyright 1999-2024 TweakPC, Alle Rechte vorbehalten, all rights reserved. Mit * gekennzeichnete Links sind Affiliates.