
Physik-Unterstützung im Web

Evergine ist eine plattformübergreifende Grafik-Engine, die mit .NET-Technologien entwickelt wurde. Um die Engine auf die Web-Plattform zu bringen, setzt unser Team auf neueste Technologien wie .NET 6 und Blazor, mit denen sich die Engine nach WebAssembly (WASM) kompilieren lässt, sodass sie nativ im Browser läuft.
Für das Rendering mit WebGL in Evergine sind Emscripten und seine EGL-Emulation leistungsstarke Werkzeuge, die den Prozess vereinfachen. Sie können also denselben Code verwenden, den wir in Ihrer bestehenden OpenGL-Integration nutzen, und müssen weniger Code pflegen.

Kommen wir nun zur Physik. Evergine verwendet Bullet Physics als wichtigste Physik-Engine. Bullet Physics ist eine hervorragende Open-Source-Bibliothek, die von Erwin Coumans gepflegt wird und in der Grafikbranche weit verbreitet ist.

Um Bullet in Evergine zu nutzen, muss die C++-Bibliothek in unsere C#-Engine eingebunden werden. Hier kommt BulletSharpPInvoke ins Spiel. Es stellt einen C#-Wrapper bereit, der über PInvokes native Aufrufe an die Bullet-Bibliothek ausführt. Dieser Wrapper ist unverzichtbar, da Sie so dieselbe Codebasis auf allen von Evergine unterstützten Plattformen (Windows, Android, Web …) verwenden können.
Schließlich müssen die Bullet-Bibliotheken für jede zu unterstützende Plattform erstellt werden. Für die Web-Plattform haben wir die mitgelieferten CMake-Skripte so angepasst, dass sie mit der Emscripten-Toolchain die finalen Bullet-WASM-Bibliotheken erzeugen. Dadurch lässt sich auf allen von Evergine unterstützten Plattformen dieselbe Physikbibliothek verwenden – jetzt auch auf der Web-Plattform.
Fazit: Indem Sie Bullet Physics nutzen und für Evergine auf der Web-Plattform anpassen, können Sie Ihren Nutzern interaktivere Webanwendungen bieten. Das ist besonders spannend, da Evergine nun WebXR unterstützt, was noch immersivere Weberlebnisse ermöglicht. Insgesamt ist dies eine beeindruckende technische Leistung, von der Entwickler profitieren, die Evergine für ihre Projekte einsetzen.

