Elena Canorea
Communications Lead
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.
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:
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.
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
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
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
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
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
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
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/
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.
Elena Canorea
Communications Lead
Cookie | Duration | Description |
---|---|---|
__cfduid | 1 year | The cookie is used by cdn services like CloudFare to identify individual clients behind a shared IP address and apply security settings on a per-client basis. It does not correspond to any user ID in the web application and does not store any personally identifiable information. |
__cfduid | 29 days 23 hours 59 minutes | The cookie is used by cdn services like CloudFare to identify individual clients behind a shared IP address and apply security settings on a per-client basis. It does not correspond to any user ID in the web application and does not store any personally identifiable information. |
__cfduid | 1 year | The cookie is used by cdn services like CloudFare to identify individual clients behind a shared IP address and apply security settings on a per-client basis. It does not correspond to any user ID in the web application and does not store any personally identifiable information. |
__cfduid | 29 days 23 hours 59 minutes | The cookie is used by cdn services like CloudFare to identify individual clients behind a shared IP address and apply security settings on a per-client basis. It does not correspond to any user ID in the web application and does not store any personally identifiable information. |
_ga | 1 year | This cookie is installed by Google Analytics. The cookie is used to calculate visitor, session, campaign data and keep track of site usage for the site's analytics report. The cookies store information anonymously and assign a randomly generated number to identify unique visitors. |
_ga | 1 year | This cookie is installed by Google Analytics. The cookie is used to calculate visitor, session, campaign data and keep track of site usage for the site's analytics report. The cookies store information anonymously and assign a randomly generated number to identify unique visitors. |
_ga | 1 year | This cookie is installed by Google Analytics. The cookie is used to calculate visitor, session, campaign data and keep track of site usage for the site's analytics report. The cookies store information anonymously and assign a randomly generated number to identify unique visitors. |
_ga | 1 year | This cookie is installed by Google Analytics. The cookie is used to calculate visitor, session, campaign data and keep track of site usage for the site's analytics report. The cookies store information anonymously and assign a randomly generated number to identify unique visitors. |
_gat_UA-326213-2 | 1 year | No description |
_gat_UA-326213-2 | 1 year | No description |
_gat_UA-326213-2 | 1 year | No description |
_gat_UA-326213-2 | 1 year | No description |
_gid | 1 year | This cookie is installed by Google Analytics. The cookie is used to store information of how visitors use a website and helps in creating an analytics report of how the wbsite is doing. The data collected including the number visitors, the source where they have come from, and the pages viisted in an anonymous form. |
_gid | 1 year | This cookie is installed by Google Analytics. The cookie is used to store information of how visitors use a website and helps in creating an analytics report of how the wbsite is doing. The data collected including the number visitors, the source where they have come from, and the pages viisted in an anonymous form. |
_gid | 1 year | This cookie is installed by Google Analytics. The cookie is used to store information of how visitors use a website and helps in creating an analytics report of how the wbsite is doing. The data collected including the number visitors, the source where they have come from, and the pages viisted in an anonymous form. |
_gid | 1 year | This cookie is installed by Google Analytics. The cookie is used to store information of how visitors use a website and helps in creating an analytics report of how the wbsite is doing. The data collected including the number visitors, the source where they have come from, and the pages viisted in an anonymous form. |
attributionCookie | session | No description |
cookielawinfo-checkbox-analytics | 1 year | Set by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Analytics" category . |
cookielawinfo-checkbox-necessary | 1 year | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary". |
cookielawinfo-checkbox-necessary | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary". |
cookielawinfo-checkbox-necessary | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary". |
cookielawinfo-checkbox-necessary | 1 year | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary". |
cookielawinfo-checkbox-non-necessary | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Non Necessary". |
cookielawinfo-checkbox-non-necessary | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Non Necessary". |
cookielawinfo-checkbox-non-necessary | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Non Necessary". |
cookielawinfo-checkbox-non-necessary | 1 year | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Non Necessary". |
cookielawinfo-checkbox-performance | 1 year | Set by the GDPR Cookie Consent plugin, this cookie is used to store the user consent for cookies in the category "Performance". |
cppro-ft | 1 year | No description |
cppro-ft | 7 years 1 months 12 days 23 hours 59 minutes | No description |
cppro-ft | 7 years 1 months 12 days 23 hours 59 minutes | No description |
cppro-ft | 1 year | No description |
cppro-ft-style | 1 year | No description |
cppro-ft-style | 1 year | No description |
cppro-ft-style | session | No description |
cppro-ft-style | session | No description |
cppro-ft-style-temp | 23 hours 59 minutes | No description |
cppro-ft-style-temp | 23 hours 59 minutes | No description |
cppro-ft-style-temp | 23 hours 59 minutes | No description |
cppro-ft-style-temp | 1 year | No description |
i18n | 10 years | No description available. |
IE-jwt | 62 years 6 months 9 days 9 hours | No description |
IE-LANG_CODE | 62 years 6 months 9 days 9 hours | No description |
IE-set_country | 62 years 6 months 9 days 9 hours | No description |
JSESSIONID | session | The JSESSIONID cookie is used by New Relic to store a session identifier so that New Relic can monitor session counts for an application. |
viewed_cookie_policy | 11 months | The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data. |
viewed_cookie_policy | 1 year | The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data. |
viewed_cookie_policy | 1 year | The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data. |
viewed_cookie_policy | 11 months | The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data. |
VISITOR_INFO1_LIVE | 5 months 27 days | A cookie set by YouTube to measure bandwidth that determines whether the user gets the new or old player interface. |
wmc | 9 years 11 months 30 days 11 hours 59 minutes | No description |
Cookie | Duration | Description |
---|---|---|
__cf_bm | 30 minutes | This cookie, set by Cloudflare, is used to support Cloudflare Bot Management. |
sp_landing | 1 day | The sp_landing is set by Spotify to implement audio content from Spotify on the website and also registers information on user interaction related to the audio content. |
sp_t | 1 year | The sp_t cookie is set by Spotify to implement audio content from Spotify on the website and also registers information on user interaction related to the audio content. |
Cookie | Duration | Description |
---|---|---|
_hjAbsoluteSessionInProgress | 1 year | No description |
_hjAbsoluteSessionInProgress | 1 year | No description |
_hjAbsoluteSessionInProgress | 1 year | No description |
_hjAbsoluteSessionInProgress | 1 year | No description |
_hjFirstSeen | 29 minutes | No description |
_hjFirstSeen | 29 minutes | No description |
_hjFirstSeen | 29 minutes | No description |
_hjFirstSeen | 1 year | No description |
_hjid | 11 months 29 days 23 hours 59 minutes | This cookie is set by Hotjar. This cookie is set when the customer first lands on a page with the Hotjar script. It is used to persist the random user ID, unique to that site on the browser. This ensures that behavior in subsequent visits to the same site will be attributed to the same user ID. |
_hjid | 11 months 29 days 23 hours 59 minutes | This cookie is set by Hotjar. This cookie is set when the customer first lands on a page with the Hotjar script. It is used to persist the random user ID, unique to that site on the browser. This ensures that behavior in subsequent visits to the same site will be attributed to the same user ID. |
_hjid | 1 year | This cookie is set by Hotjar. This cookie is set when the customer first lands on a page with the Hotjar script. It is used to persist the random user ID, unique to that site on the browser. This ensures that behavior in subsequent visits to the same site will be attributed to the same user ID. |
_hjid | 1 year | This cookie is set by Hotjar. This cookie is set when the customer first lands on a page with the Hotjar script. It is used to persist the random user ID, unique to that site on the browser. This ensures that behavior in subsequent visits to the same site will be attributed to the same user ID. |
_hjIncludedInPageviewSample | 1 year | No description |
_hjIncludedInPageviewSample | 1 year | No description |
_hjIncludedInPageviewSample | 1 year | No description |
_hjIncludedInPageviewSample | 1 year | No description |
_hjSession_1776154 | session | No description |
_hjSessionUser_1776154 | session | No description |
_hjTLDTest | 1 year | No description |
_hjTLDTest | 1 year | No description |
_hjTLDTest | session | No description |
_hjTLDTest | session | No description |
_lfa_test_cookie_stored | past | No description |
Cookie | Duration | Description |
---|---|---|
loglevel | never | No description available. |
prism_90878714 | 1 month | No description |
redirectFacebook | 2 minutes | No description |
YSC | session | YSC cookie is set by Youtube and is used to track the views of embedded videos on Youtube pages. |
yt-remote-connected-devices | never | YouTube sets this cookie to store the video preferences of the user using embedded YouTube video. |
yt-remote-device-id | never | YouTube sets this cookie to store the video preferences of the user using embedded YouTube video. |
yt.innertube::nextId | never | This cookie, set by YouTube, registers a unique ID to store data on what videos from YouTube the user has seen. |
yt.innertube::requests | never | This cookie, set by YouTube, registers a unique ID to store data on what videos from YouTube the user has seen. |