160 likes | 243 Views
PhysX auf der GPU in Batman: Arkham Asylum & bei Fluid Simulations Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 2): Simulation und 3D Programmierung SS 2013 Dozent: Prof. Dr. Thaller Datum: 11.07.2013 Referent: Marvin Liu.
E N D
PhysX auf der GPU in Batman: Arkham Asylum & bei Fluid Simulations Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 2): Simulation und 3D Programmierung SS 2013 Dozent: Prof. Dr. Thaller Datum: 11.07.2013 Referent: Marvin Liu
Einführung Physikalisch basierte Simulationen werden immer wichtiger in Spielen Effekte wie Flüssigkeiten, Rauch, Trümmer, Stoffe (cloth) & rigid body dynamics erhöhen Realitätsgrad und Detailreichtum Diese Effekte sind „teuer“ und sollten nicht nur über CPU, sondern parallel auch über GPU berechnet werden
NVIDIA PhysX Eine in Echtzeit laufende Physikengine, die GPUs in Übereinstimmung mit CPUs nutzt, um physikalisch basierte Simulationen zu beschleunigen GPU Anteile werden durch CUDA Compiler integriert, welche C und C++ unterstützen
NVIDIA GPU Rigid Body Engine (GRB) Speziell entwickelt für rigid body simulations GRB bis zu 3x schneller als Simulationen auf der CPU → ermöglicht groß skalierte Zerstörungen an und von Spielobjekten
PhysX Zerstörung Video
NVIDIA APEXDestruction Module Wird in Batman für das Schreiben und Simulieren von zerstörbaren Spielobjekten verwendet Ermöglicht zu spezifizieren, wie ein Spielobjekt auseinanderbricht Übernimmt das Kreieren, Auseinanderbrechen und Zerstören von PhysX rigid bodies, wenn ein Spielobjekt beschossen, hochgejagt oder weggeweht wird
APEX Destruction Video
Requirements Performance Parallelism API Interaction with PhysX Shapes Multi-threading Buffering Streaming Authoring
Partikelsysteme Allgegenwärtige Nutzung in Games, um eine Vielzahl von Effekten zu erzeugen Sollen so wenig wie möglich mit Szene interagieren, um Kosten niedrig zu halten Verwenden vorausberechnete Kräfte Ziel ist die Implementation in reichhaltigen und dynamischen Szenen durch parallele Berechnung der GPU
Eigenschafte des Partikelkollisionsalgorithmus Durchdringen & künstlichen Energieverlust minimieren, um Partikel nicht austreten oder an Ränder haften zu lassen Konfigurierbarer Kollisionsradius Bewältigung von Hochgeschwindigkeits-kollisionen Partikel auf statischen Objekten können nicht von dynamischen Objekten hindurchgedrückt werden
Rendering Anzeigen vom Materialien aus Partikeln in Spielen erfordern unterschiedliche Techniken: Körniges Material: instance meshes oder impostors Gase/Flüssigkeiten: billboard per particle und blending methodes Flüssigkeiten: zusätzlich smoothing methodes Schatten steigern Realismusgrad
PhysX Fluids Video
GPU Implementation & Resultat 100% des Codes parallel anzulegen ist sinnvoll, da so das volle GPU-Potential genutzt wird → Verzögerungen durch Transfer zwischen GPU und CPU werden minimiert und Synchronisation ist nicht erforderlich Batman erzielt mit GRB-Nutzung eine dreifache Leistungssteigerung
PhysX in Batman Video