Update November 13th, 2020
After noticing performance issues with this approach, we have moved to Emscripten's EGL one through static linking –which has resulted much faster–, using our existing OpenGL.NET binding. Wave Engine 3.0 preview 4 already contains these changes.
Our efforts will go in this direction and, surely, we will not maintain this repository as much as before. We are also working on WebGPU.NET, as the replacement for everything WebGL. However, WebGL.NET is still valid whenever performance is not the key (this article draws a red line on it).
.NET binding for WebGL through WebAssembly. See the samples running here.
If you want to jump in quickly, Your first WebGL.NET app will guide you step by step.
Apart from adding the NuGet package, make a local copy of:
- this packages folder, which contains mandatory NuGets from Mono still not published in nuget.org; and
- this NuGet.config along your SLN/CSPROJ
- WebGL 1 & 2 support
- API C#-ified to make .NET Developers feel at home
Apart from serving Wave Engine 3.0 for the Web, it's being used in some other really nice projects, such like:
- Jazz² Resurrection: a "reimplementation of the game Jazz Jackrabbit 2 released in 1998"
- Wave Engine's glTF viewer: self-explanatory O:-)
Run this in browser's Console to monitor how many bridged objects there are in such moment:
BINDING.mono_wasm_object_registry
- @kjpou1, for your PRs improving performance overall, along with nice comments on how stuff work underneath