Soporte de física en la Web
Evergine es un motor gráfico multiplataforma desarrollado con tecnologías .NET. Para llevar el motor a la plataforma web, nuestro equipo ha aprovechado las últimas tecnologías, como .NET 6 y Blazor, que nos permite compilar el motor a WebAssembly (WASM) para ejecutarlo de forma nativa en el navegador.
Para renderizar con WebGL en Evergine, Emscripten y su emulación EGL son potentes herramientas que hacen el proceso más fluido. Esto significa que usted puede utilizar el mismo código que estamos utilizando en su integración OpenGL existente, lo que hace menos código que mantener.
Ahora, vamos a sumergirnos en la física. Evergine utiliza Bullet Physics como su principal motor de física. Bullet Physics es una excelente biblioteca de código abierto mantenida por Erwin Coumans que es ampliamente utilizada en la industria gráfica.
Para usar Bullet en Evergine, necesitas consumir la libreria C++ en nuestro motor C#. Aquí es donde BulletSharpPInvoke entra en juego. Proporciona wrapper de C# que hace llamadas nativas a la biblioteca de Bullet utilizando PInvokes. Este wrapper es esencial, ya que le permite utilizar la misma base de código en todas las plataformas soportadas por Evergine (Windows, Android, Web, etc.)
Finalmente, necesitas construir las librerías Bullet para cada plataforma que quieras soportar. En el caso de la plataforma web, hemos adaptado los scripts CMake proporcionados para utilizar la cadena de herramientas Emscripten para producir las librerías Bullet WASM finales. Como resultado, es posible utilizar la misma librería de física en cada plataforma soportada por Evergine, incluyendo ahora la plataforma web.
En conclusión, mediante el uso de Bullet Physics y su adaptación para trabajar con Evergine en la plataforma web, usted puede proporcionar a sus usuarios aplicaciones web más interactivas. Esto es especialmente emocionante ahora que Evergine soporta WebXR, que permite experiencias web más inmersivas. En general, esta es una impresionante proeza técnica que beneficiará a los desarrolladores que utilizan Evergine para sus proyectos.