Babylon.JS 3.0 has just been released. BabylonJS is an open source WebGL powered 3D game engine. If you are interested in learning more about BabylonJS I reviewed an earlier version available here as well as a more recent tutorial series available here. The 3.0 release brings a number of new features to the game engine including WebGL 2 support, WebVR 1.1 support, glTF 2.0 support and more. Perhaps most interestingly, this release also introduces the Babylon.UI extension for creating user interfaces.
Details from Microsoft’s developer blog:
Support for WebGL 2
WebGL 2 is a great step forward for 3D developers as it allows more control over the GPU. The support for WebGL 2 is completely transparent with Babylon.js 3.0. This means that the engine will automatically use WebGL 2 if available, and it will fall back to WebGL 1 if not. Mode details can be found here.
Support for WebVR 1.1
With a single line of code, you can now unleash the power of virtual reality directly in your browser. Babylon.js 3.0 supports all VR devices, including the new Windows Mixed Reality headsets. Babylon.js can also transparently use WebVR 1.0 if your device does not support the latest version of the specification (Gear VR for instance). It also supports using device orientation events to provide virtual reality on mobile.
You can visit the Build 2017 website to watch a complete session about Babylon.js and WebVR.
You can find the Sponza demo here.
Support for glTF 2.0
glTF is a file format for GL APIs. With Babylon.js 3.0, we added complete support for loading glTF 2.0 files (including physically based rendering materials).
This version was ratified recently by Khronos group. glTF will help the 3D ecosystem to enable all new ways to create, share and consume 3D.
Improved physically based rendering (PBR)
The PBRMaterial used to render physically based objects was completely rewritten. It is now more accurate and better aligned with GLTF2.0 specifications. This material can be used to simulate real life lighting and provide photorealistic scenes.
You can find a live demo here.
The Babylon.js GUI library is an extension you can use to generate interactive user interface. It relies on hardware acceleration to produce a fast and light way to deal with user interaction.
The Babylon.GUI extension can be helpful with VR scenarios when you cannot display HTML elements. It can also be used to project your UI in 3D. In this case, the UI will be textured on a 3D object but will remain functional.
Support for morph targets
Morph targets are a great way to animate objects by using morphing between different targets. This technique is widely used to animate character heads, for instance.
You can find a technical demo here.
Support for live textures using WebCam
You can now create project webcam content to any textures in your world. This could be used to simulate mixed reality experience or apply some fun effects like in this ASCII art demo.
BabylonJS is available here and on Github.