Skip to main content
February 17, 2022

Announcing Evergine’s 2022 first release

Welcome to the first Evergine release of 2022 (Evergine 2022.2.16). Following our roadmap, we will publish two major versions this year, the first one in February and the second one in September, and here you have the first with many new features and improvements. 

What is new since the latest 2021 version?  

Following our customers’ feedback, we have added support for OpenXR and Meta Quest through Vulkan API. That improved the prefab functionality, reduced the standard material shader compilation time up to 90%, added a new user interface to handle add-ons, and published the two first add-ons: MRTK and Azure Remote Rendering for HoloLens development. 

 You can download Evergine here: 

Evergine Highlights 

OpenXR support 

OpenXR represents a new standard designed by Khronos group to unify the development across multiple VR/AR/MR devices. Behind this initiative, there are companies like Meta, Microsoft, HTC, Steam, Varjo, and Magic Leap, allowing support to all their devices. The official support for OpenXR will allow the Evergine developer to create new applications that will support the incoming new XR devices. 

Meta Quest project template

The Oculus Quest device is now called Meta Quest after the latest news from Facebook, this is the most popular VR headset right now after selling about 10 million units of the newest Quest 2 device. Previously we supported VR devices through the OpenVR API, but we have replaced this, and in this new release, it now runs under OpenXR. 

For maximum performance and to support future graphics features, we use Vulkan as the only Graphics API in this platform based on Android.  

To know more insights about how to start creating applications for Meta Quest using Evergine, continue reading at OpenXR & Meta Quest

New MRTK (Mixed Reality ToolKit) Add-On

Creating HoloLens application requires 3D graphics interfaces, like buttons, slides, hand menus, etc. We have packaged all the 3D controls we have developed for our applications and offer them to our customers more accessible than before through a new add-on. Now you just need to create an empty project using our Evergine Studio, go to project settings, and install the MRTK add-on. All the resources like assets, prefabs, and behaviors will be added to your project, and all the NuGet dependencies will be resolved for you. 

Read more about how to create HoloLens applications using this add-on at MRTK Add-On 

New Azure Remote Rendering add-on

This new add-on allows customers to create HoloLens applications using the Azure remote rendering service, which is helpful to load and render high detailed models with millions of polygons from HoloLens devices. This uses cloud rendering GPU technology to push current HoloLens performance and show models which will be impossible to render on the device chipset.  

The GPUs in the cloud do the rendering work and send the result via H264 as a stream to the device in real-time, but the service also sends the depth buffer rendering in the cloud, so it is possible to do mixed rendering with geometry rendering in the cloud and geometry and UI 3D interface for example rendering on the device at the same time. 

Read more about this add-on and service at ARR Add-On

New add-ons interface 

The add-ons needed to be configured by code until this release, but now you will find a new user interface under project settings inside the Evergine Studio. This new UI will allow you to install, update, and remove add-ons from the current project, add all the resources, and resolve the NuGet package dependencies in the Visual Studio project automatically.  

We are working on more add-ons that will be included in the upcoming Evergine versions; you can read more at  New Add-Ons interface

Prefab improvements 

We continue improving the prefab system, which is interesting when you need to replicate a specific structure from your entity hierarchy multiple times. You just need to select a particular node from the entity hierarchy and select create prefab to create the new asset which contains the entity’s serialization. 

All our new add-ons are using this prefab system to share useful entity structures during the development of applications using those features. After stabilizing the new prefab asset, we will work on a new visual prefab editor to allow you to edit these assets and expect them to be available in the next major version. 

Read more about the prefabs system at Prefabs additions

Reduce Standard Material time shader compilation

Following the feedback, we decided to figure out how to improve the standard material shader time compilation. After a lot of thought, we decided to add new compiler directives to fragment the code by light types because the code behind each kind of light is quite long (it implemented physically based rendering and complex shadow map techniques). Most of our customers use only directional lights, but the engine supports a wide range of light types: point lights, spotlights, sphere area lights, tube area lights, rectangle area lights, and disk area lights. So now the light code for every type of light is only compiled if the project uses this type of light, which is detected automatically, so the user requires no action. Even in the worst-case scenario, using high-quality shadows decreases the compilation time by 90%. 

On the other hand, the shader analyzer has been improved and now it is possible to detect which effect directives are used in each pass.  That gives us more information about what shader combination to compile based on the pass info and the active directives filtered. Hence, the new version reduces the number of shader combinations needed to be collected.  

Both improvements directly impact loading a scene or a project. When you run a scene, Evergine needs to compile all Standard Effect combinations required to draw the scene. With these improvements, we have reduced the number of combinations required to be compiled and the time to collect each combination.  

Here you can see the result comparing the Evergine 2021 version vs. the 2022 new version on the automotive demo sample: 

Automotive Demo https://github.com/EvergineTeam/Automotive-Demo 

More documentation

We have updated the documentation website to expand more info about the new features and increase the documented sessions. Now you will find a combo box to select between different versions, which for now are 2021.11.17 and 2022.2.16, so remember to select the right option depending on the Evergine version you are working on. Finally, we have started adding more information about extensions and add-ons included in this release. 

Check all the changes at https://docs.evergine.com/ 

What’s next? 

We are working on many features in 2022, which respond to the need of companies we are working with within areas like metaverse supporting new types of MR and VR devices.  Also, digital twin adding support for point cloud files, and improving our upcoming add-on for cad file formats, synthetic data by adding a new patch tracer based on RTX as a new render pipeline within the Evergine Studio, and finally, web platform adding support to WebXR and WebGPU technologies. 

 

As part of the team, we hope you enjoy the latest release of Evergine. 

Javier Cantón
Author
Javier Cantón
Plain Concepts Research