David Ávila

@davilovick@mastodon.gamedev.place
7 Followers
7 Following
10 Posts
#Evergine Graphic Engine technical lead at Plainconcepts Research Team, and in my free time an enthusiast photographer/astronomer/modeller..

🔭📷Continuing in my #Astrophotography summer, this is the Dumbbell Nebula (M27), the remnant of a star explosion.

Total integration time of 9.5 hours during 2 nights
#CielosESA
#Astronomy

Exciting update for #Evergine devs! 🚀
We're integrating #Metal and #iOS support in the next release, empowering you with advanced graphics and industry compatibility.

#iosdev
#gamedev
#metalapi

#MetaQuestVR Passthrough support for the upcoming #Evergine release, tested in a Quest Pro.

Added support for the following #OpenXR extensions:
- XR_FB_passthrough
- XR_FB_triangle_mesh

#VirtualReality #MixedReality #GameDev

As a result, we use the same physic library on each platform supported by #Evergine (including
web in the next release😉).

This will allows our users to increase the interactivity in Web applications, now that we have #WebXR support.

I hope that you like this technical thread 🙂

Finally, we need to build Bullet libraries for each Evergine platform that we want to support (Windows, Android, Web...)

In the case of Web, we are adapted the provided CMake scripts to use the #Emscripten toolchain, to produce the final Bullet #WASM libraries.

To use #BulletEngine in Evergine, we need to consume this C++ library into our C# engine.
And to perform this task, we are adapted BulletSharpPInvoke:
https://github.com/AndresTraks/BulletSharpPInvoke

This project provides a C# wrapper that make native calls to Bullet library using PInvokes.

GitHub - AndresTraks/BulletSharpPInvoke: .NET wrapper for the Bullet physics library using Platform Invoke

.NET wrapper for the Bullet physics library using Platform Invoke - GitHub - AndresTraks/BulletSharpPInvoke: .NET wrapper for the Bullet physics library using Platform Invoke

GitHub

So, let's talk about Physics...

In #Evergine we are using #BulletPhysics as our main physic engine. Bullet is a good open-source library maintained by Erwin Coumans

To render with #WebGL in #Evergine, we are using #emscripten and it's awesome EGL emulation.
This allows us to use exactly the same code in C# that we are using in our existing #OpenGL integration (less code to maintain 😅)

https://emscripten.org/docs/porting/multimedia_and_graphics/EGL-Support-in-Emscripten.html

EGL Support in Emscripten — Emscripten 3.1.26-git (dev) documentation

First, #Evergine is our cross-platform graphic engine, developed (almost) entirely in .NET

We want all the engine code to be ported to the web platform. For that purpose, we are using #NET6 and #Blazor, that help us to compile our engine to #WASM.

We're working to bring #BulletPhysic to Web in the next #Evergine Release 🙂

Now, a small demo using physic joints.

But, how are we doing that?
🧵Thread 👇

#GameDev #dotnet #net6 #blazor