TEST

BFG PhysX 128 MB im Test - AgeiaPhysX-dasPrinzip

Portrait des Authors


Werbung

Physikberechnungen existieren auch schon in aktuellen Spielen - aber stark vereinfacht. Sie gehören zum Gameplay wie eine gute Grafik, denn mit einer unglaubwürdigen Physik im Spiel wird eine Szene unglaubwürdig und unrealistisch. In den letzten Jahren sind Spiele auch in diesem Punkt immer realistischer geworden: Während man in den ersten Autosimulationen noch durch die Bäume und Schilder am Straßenrand fahren konnte, ohne einen Schaden am Auto zu nehmen, prallt man nun dagegen oder die Schilder werden umgefahren und fliegen - eventuell abgerissen - durch die Gegend. Bis zu einem gewissen Detaillierungsgrad ist dies auch kein Problem, denn die CPU kann diese einfachen Berechnungen ohne Probeme erledigen.

Berechnet wird dabei aber nicht die tatsächliche Figur - beispielsweise die Kollision des Autos. Es wird eine "Bounding Box" um das Auto gelegt - also ein vereinfachter, rechteckiger Kasten. Die Physikengines der meisten Spiele können nun feststellen, wo die Kollision statt findet - vorne, links, rechts, hinten, unten oder oben. Bei einer Kollision wird die Information an die Spielengine weitergegeben und eine neue Textur kann über die Seite gelegt werden, wo die Kollision stattgefunden hat. Beispielsweise kann der Entwickler dann eine eingedellte Tür simulieren. Die Bounding Box ist aber immer noch dieselbe. Genauer kann eine Kollision bislang kaum bestimmt werden, wobei darauf geachtet wird, den Detaillevel so hoch zu setzen, dass der entstehende Realismus der Bounding Box der tatsächlichen Physik möglichst nahe kommt. Im Idealfall wird die Bounding Box also zu einem mehreckigen Konstrukt, das genauere Abmaße des Autos wiedergibt.

Viel mehr schafft man aber mit aktuellen Mitteln nicht - denn auch wenn keine Kollision stattfindet, müssen ständig Tests ablaufen, die die Kollisionen entdecken. Sind also 10 Objekte in einem Raum, werden für jede der 10 Objekte Berechnungen durchgeführt, ob sie miteinander kollidieren oder nicht. Bei einer hohen Anzahl von Objekten ist dies mit normalen Mitteln nicht mehr abzuwickeln.

Nach der Vorstellung von Ageia soll sich die CPU um die KI kümmern,
die Grafikkarte um den 3D-Bereich und die Ageia PPU um die Bewegungen im Spiel

Steigert man den Grad der Realität oder lässt mehrere Kollisionen in einer Szene zu, bekommt man nun Probleme mit der Performance, die man in verschiedenen Varianten beseitigen kann:

  • Dual-Core-Optimierung:
    Viele Spiele können aktuell nur auf einem Kern Berechnungen durchführen. Deshalb erscheint es nur logisch, den zweiten Kern für Physikberechnungen zu nutzen. In einem begrenzten Maße ist dies auch möglich. Aber: Da die CPU keine für derartige Zwecke entwickelte Einheit ist, laufen derartige Prozesse auf ihr recht langsam ab. Spezielle Prozessoren oder eine spezielle Grafikengine leisten hier deutlich mehr. Das Problem liegt hier nicht in der Schnelligkeit einer einzelnen Berechnung, sondern in der Masse an Kollisionsberechnungen insgesamt.

  • Physikengine (Software), die die Grafikkarte nutzt
    Die zweite Möglichkeit ist es, die Grafikkarte die Berechnungen durchführen zu lassen. Ein entsprechendes Konzept existiert bereits von Havok mit "Havok FX". Havok ist bereits seit einigen Jahren in der Branche der Physikengines eine Größe und somit wundert es nicht, dass man auch gleich NVIDIA als Partner für diese Lösung gefunden hat und auch bereits einige Spielehersteller Unterstützung angekündigt haben. Bei dieser Variante sollen die Pixelshader der Grafikkarte für die Berechnungen genutzt werden, da diese mit einer derart hohen Rechenlast zurecht kämen. Allerdings wird durch diese Lösung der PCIe-Bus extrem belastet, da nicht nur Grafikdaten, sondern auch Physikdaten auf der GPU ablaufen müssen. Die Koordination der Daten muss über die CPU abgewickelt werden und somit entsteht ein recht hoher Datenverkehr zwischen CPU und Grafikkarte.

    Damit dieser nicht überhand nimmt, lässt Havok alle Physikberechnungen des Gameplays (also derartige, die direkt auf das Spielgeschehen Einfluss nehmen, wie die oben genannte Kollosion des Autos) direkt auf der CPU berechnen, während die Grafikkarte für die optischen Highlights die Effektphysik berechnet (beispielsweise zerberstende Gebäude, explodierende Gegenstände). Der Entwickler eines Spieles kann seine Objekte entsprechend kennzeichnen und somit für eine ausgewogene Performance sorgen. Besonders profitiert diese Lösung natürlich dann, wenn in der GPU noch genügend Leistungsreserven verfügbar sind: Ein SLI-System ist hier beispielsweise die ideale Basis.

    ATI geht hier einen etwas anderen Weg: Man möchte eine Art Middleware zur Verfügung stellen, welche es ermöglicht, den Grafikchip auch für andere Berechnungen zu nutzen. Somit könnten nicht nur Physikengines auf die GPU zurückgreifen, sondern auch andere Programme mit spezialisierten Abläufen. Wann eine derartige Lösung jedoch marktreif ist, ist noch nicht bekannt.

  • Physikbeschleuniger als Hardware
    Die effektivste, aber natürlich auch teuerste Variante ist es, eine dedizierte Hardwarelösung zu schaffen, die darauf spezialisiert ist, physikalische Berechnungen auszuführen. Hierbei wird weder die CPU bei ihren sonstigen Tätigkeiten behindert, noch die Pixelshader der Grafikkarte. Aber es sollte klar sein, dass diese Lösung als technisch aufwändigste auch die finanziell teuerste ist. Zunächst besitzt eine derartige Lösung einen eigenen Speicher - Zwischenschritte, Positionsbestimmungen, Bewegungsvektoren und sonstige Daten können in diesem abgelegt werden und behindern somit nicht den Texturspeicher der Grafikkarte. Auch wird keine Bandbreite verschwendet, die GPU und CPU können recht unbehelligt ihre Aufgaben abarbeiten. Zudem sind die PPUs (Physical Processor Units) darauf ausgelegt, mehrere Berechnungen gleichzeitig durchzuführen - sie sind also extrem parallel ausgelegt und können deshalb auch mehrere tausend Kollisionen pro Sekunde bearbeiten.

    Dabei soll der Kern sogar in der Lage sein, Objekte nicht starr zu betrachten, sondern ihre Deformierung mit einzubeziehen oder sie zerbrechlich zu machen. In der Cell Factor Demo visualisiert Ageia dies eindrucksvoll. Wenn Rauch, Nebel oder andere Objekte aus miniaturisierten Einzelobjekten bestehen, ist es sogar möglich, Staubwolken mit der Karte zu berechnen - bislang war dies nur ein reiner 3D-Effekt. Insgesamt soll der Ageia-Chip 32.000 Physikobjekte geichzeitig berechnen können - beeindruckend.

In allen drei Fällen muss jedoch eines hinzukommen: Die Unterstützung des Spiels. Die Engine des Spiels muss also entweder eine spezialisierte Physikengine mitbringen, die auf der Hardware läuft (z.B. NovodeX bei PhysX) oder die auf eine Softwareschnittstelle zurückgreift (z.B. Havok FX), die dann die Hardwarefähigkeiten zur Verfügung stellt.

Widmen wir uns dem zweiten Teil: Den unterstützten Spielen und den Möglichkeiten, die sich im Spielen durch die Physikengine ergeben.

Quellen und weitere Links

    Werbung

    KOMMENTARE ()