
Innovationen in der physikalischen Simulation: mehr Interaktion
*Unter Mitwirkung von David Ávila.
Wir arbeiten weiter an den Funktionen unserer 3D-Grafik-Engine Evergine. Heute stellen wir Ihnen eine vor, die uns besonders begeistert und mit der Sie so unterschiedliche Bewegungen wie Teilchenkollisionen oder die Wirkung der Luft auf ein stehendes Auto im Windkanal simulieren können.
Was wir umgesetzt haben
Bisher boten Demos von Physik-Engines im Webbrowser meist nur stark eingeschränkte Funktionen: wenige Objekte und begrenzte Interaktionsmöglichkeiten … Wie Sie unten sehen, haben wir dagegen den gesamten Funktionsumfang einer fortschrittlichen Physik-Engine (Bullet Physics) in den Webbrowser gebracht. Das ermöglicht anspruchsvollere Echtzeit-Physiksimulationen. Im folgenden Beispiel sehen Sie eine Simulation mit Joints, die verschiedene physikalische Objekte miteinander verbinden (die einzelnen Glieder der Brücke) und dynamisch auf die übrigen Würfel der Szene reagieren:
Wir arbeiten weiter daran, #BulletPhysic im nächsten #Evergine-Release ins Web zu bringen 🙂
Hier eine kleine Demo mit Physik-Joints.
Aber wie machen wir das?
🧵Thread 👇#GameDev #dotnet #net6 #blazor pic.twitter.com/0U5Ye3EFC9— David Ávila (@davilovick) 22. Dezember 2022
Dieses Physikniveau im Webbrowser zu erreichen, war nicht einfach. Im folgenden Video sehen Sie noch mehr Elemente und wie sie miteinander interagieren, wenn sie von physikalischen Projektilen getroffen werden:
Damit verwenden wir auf jeder von #Evergine unterstützten Plattform dieselbe Physikbibliothek (einschließlich Web im nächsten Release 😉).
So können unsere Nutzer die Interaktivität ihrer Webanwendungen steigern – jetzt, da wir #WebXR unterstützen.Ich hoffe, Ihnen gefällt dieser technische Thread 🙂 pic.twitter.com/6ExdmgoTH5
— David Ávila (@davilovick) 22. Dezember 2022
Wofür es eingesetzt wird
Diese Innovation lässt sich in verschiedenen Branchen nutzen, etwa zur Darstellung von Teilchenkollisionen, wovon auch Forschungslabore, Universitäten und andere Bildungseinrichtungen profitieren. Ebenso kann sie für virtuelle Windkanäle eingesetzt werden, um den Luftwiderstand von Fahrzeugen, Flugzeugen oder Brücken zu testen. Zudem ist es nun möglich, bei der Nachbildung atmosphärischer Phänomene in Webanwendungen Blitze mathematisch „einschlagen“ zu lassen. Darüber hinaus ermöglichen realistische physikalische Simulationen die Gestaltung fortschrittlicher Umgebungen für maschinelles Lernen.
Auch WebXR kann von der Web-Unterstützung für physikalische Simulationen profitieren – etwa durch eine WebXR-fähige Webanwendung auf dem Smartphone, die über den Bildschirm die Interaktion mit physikalischen Objekten ermöglicht, die per AR (Augmented Reality) virtuell in der realen Welt platziert werden.
Wie wir es erreicht haben
Bei Evergine ist unsere wichtigste Physik-Engine die Open-Source-Engine Bullet Physic, kurz Bullet. Vor Kurzem ist es uns gelungen, Bullet für WASM zu kompilieren, ein Binärcodeformat für Webbrowser.
Alle uns bekannten Grafik-Engines verwenden externe Physik-Engines und kompilieren nach JavaScript oder S.js, doch nur wenige kompilieren nach WASM. Möglich wurde dies dank Emscripten, mit dem sich WASM aus C++-Code erzeugen lässt, sowie dank der jüngsten Entwicklungen von Microsoft bei den Blazor-Compilern, mit denen wir die Bibliothek Bullet Physics einbinden und in der Evergine-Engine nutzen können. All dies wurde durch die neuesten Entwicklungen ermöglicht, die Microsoft in Blazor.NET6 veröffentlicht hat, einem weiteren Framework des Unternehmens für die Anwendungsentwicklung.
Kurz gesagt: Diese Innovation bringt uns an die Spitze der Grafik-Engines und der 3D-Bilderzeugung im Webbrowser. Wenn Sie mehr über die Neuerungen in Evergine dank der Fortschritte von Blazor und .NET6 erfahren möchten, helfen wir Ihnen gern weiter.
