Unity WebGL Technical breakdown - How Unity WebGL Works

 A Glimpse of technical background of unity3d WebGL:

Unity support dozen of platform for application deployment and one of them is WebGL. WebGL allows you to run your content on a web. Technically, WebGL is an API that renders graphics in web browser.  Currently, it has two supported version of WebGL 1.0 and 2.0. Remember WebGL 1.0 roughly matches the functionally of OpenGL ES 2.0 while WebGL 2.0 roughly matches the functionally of OpenGL ES 3.0.

Unity WebGL Structure


Figure 1 Unity WebGL consist of these components.

Unity WeGL – How it Works? :


Figure 2: Unity WebGL Technical Work

WebGL Technical Terms:

C# Scripts: Your code in Unity

IL2CPP: Intermediate Language to C++ aka IL2CPP is a unity developed backend used to build proejcts for different platform. Beside IL2CPP you can also use Mono. IL2CPP convert IL code to  C++ then create a native binary file like .exe or .apk etc

Emscripten: is an open-source compiler toolchain for WebAssembly. It allows to compile C/C++ code (or any LLVM based language) into web assembly.

OpenGL: stands for Open Graphic Library. It is a cross-platform, cross-language API for rendering 2D/3D vector graphics. The API is typically used to interact with a GPU (graphics processing unit), to achieve hardware-accelerated rendering.

OpenGL ES: is made for embedded systems like smartphones

Remember Unity WebGL is not currently supported on Mobile devices.

Unity WebGL useful Links:

1.  WebGL Browser Compatibility: https://docs.unity3d.com/2020.2/Documentation/Manual/webgl-browsercompatibility.html
2.       WebGL Graphics: https://docs.unity3d.com/2020.2/Documentation/Manual/webgl-graphics.html
3.       Unity WebGL issues/Solution: https://researchandprogram.blogspot.com/2020/01/unity-webgl-issues-and-solutions.html
4.       Web Assembly: https://blogs.unity3d.com/2018/08/15/webassembly-is-here/?_ga=2.156094713.33700231.1608525672-1368490717.1540035490
5.       IL2CPP Introduction: https://blogs.unity3d.com/2015/05/06/an-introduction-to-ilcpp-internals/
6.       Emscripten: https://emscripten.org/docs/introducing_emscripten/about_emscripten.html
7.       OpenGL vs OpenGL ES: https://stackoverflow.com/questions/4519264/opengl-es-versus-opengl#:~:text=The%20main%20difference%20between%20the,(using%20a%20compatibility%20profile).



Post a Comment

0 Comments