Skip to main content
September 29, 2022

Announcing the new Evergine major release

Today we announced Evergine 2022.9.28. This is the second major release of this year 2022 following our roadmap with 2 major releases per year. In this major release we have added a bunch of new features and improvements, thanks to our customers’ feedback. 

What’s new? 

In this major release we have focused on bug fixing and improving performance, making great advances such as the new mathematics hardware accelerated API. We have also added new productivity features such as the new 3D Text editor, Quest support to MRTK controls and hand tracking. We developed new tools such as the ARCore extension and an ImGui extension including ImPlot, ImNodes and ImGuizmo libraries, among other tools that were added to the Evergine Studio. Finally, we improved the documentation reference further. We hope you will enjoy all these changes. 

 You can download Evergine here: 

 Major Highlights 

New Particle Editor 

The particle system in Evergine is used to render effects that are normally difficult to portray using meshes or sprites, but until this version, the particle system in Evergine needed to be configured by code. In this new major release, we present a new tool inside the Evergine Studio to make it easy to play with all the possible parameters supported by this complex particle system. 

Continue reading about the new particle system editor and features here.

ARCore integration 

One of the most interesting features added in this version for mobile developers is the ARCore support inside the ARMobile extension. This allows you to access to the ARCore API to track the movement of the device in the space which is used to render 3D objects on top of the camera image. The application also has access to light estimation and face tracking features. 

Continue reading about the new ARMobile extension features here.

SIMD based Math 

The new Evergine version comes with performance improvements in the Evergine.Mathematics library. It is now taking advantage of the new SIMD API instruction support on NET6 that allows you to use hardware accelerated instructions defined by the CPU manufacturers, so the new API checks if the hardware supports these extensions to use them and if not it uses the backward compatibility path instead. In x64 and x86 architectures it can use SSE and AVX vectors and in Arm64 architecture it is possible to use AdvSIMD. The result of all this work is a 3-4X performance gain in Math4x4, Matrix3x3, Quaternion and Vector4 operations. 

Read more about the new Math based SIMD here.

MRTK on Quest 

Our Mixed Reality Toolkit (MRTK) which contains multiple 3D controls is useful to create Mixed Reality applications on HoloLens 2, and is compatible with Meta Quest devices now, so you can use it to create 3D applications on this platform and the code will be shared on MR/VR devices. This can be useful for fast prototyping MR applications on Quest because the deployment is faster. 

Quest Hand Tracking support 

The OpenXR integration now comes with Hand Tracking capability.  Hand Tracking in XR applications allows users to interact with virtual objects and environments using their hands. This is a new way to interact with your virtual scene without the need for typical hand controllers. 

Meta Quest devices will benefit the most from this feature. 

Read more about Quest Hand Tracking support here.

picture about hand tracking in evergine

New fonts and text support 

We have added in this major version a new asset type and editor tool for 3D Text inside the Evergine Studio. This new 3D text is hardware accelerated by GPU and uses the multi-channel signed distance field technique to reduce the aliasing effect depending on the size on screen. The new Font Editor tool allows you to use TTF files to define a new font and the charset in UTF-8 or ASCII enconding that you can use in 3D texts. 

Read more about the new 3D Text and font tools here.

picture about fonts in evergine

ImGui, ImPlot, ImNodes and ImGuizmo. 

With the first release of this year we introduced support to the ImGui library on our low-level API. For this release we have created a new ImGui extension which contains an ImGuiManager to make it easy to use from our high level API using behaviors. We also added support for 3 of the most interesting libraries of components and widgets on top of ImGui. 

  • ImGuizmo contains some 3D widgets useful for fast prototyping WYSIWYG editors.
  • ImPlot is a complete library for rendering basic and advanced chart using the GPU.
  • ImNodes aims to provide simple a interface for creating a node graph editor.

 Read more about this new extension here.

Visual SceneManager configuration 

Until now the SceneManagers need to be configured by code but in this version, we release a new way to do it within the Studio. Inside the Evergine Studio go to the Entity Detail region, now you will find a new tab called Scene Managers. There you can edit the parameters of the built-in managers such as the AssetSceneManager, BehaviorManager or ShadowMapManager as well as the custom SceneManager that you write from Visual Studio. 

Level of Detail for models 

The Level of detail (LOD) is a technique which reduces the number of GPU operations that Evergine requires to render distant models. This technique allows Evergine to reduce the model complexity it renders for an Entity based on its distance from the camera. It is possible to configure LOD levels in your external 3D modeling application and Evergine automatically creates and configures the required Entity and components for you when you drag&drop the model into a scene. The representation inside the hierarchy tree will be a parent entity with one child entity for every LOD defined level. The parent entity must be contained in a LODGroup component which allows you to configure all the parameters to correctly render this model depending on the distance to the camera and each child will have a LODEntry component with the information required by the LODGroup to define each level. 

WebXR experimental template 

The WebXR W3C Proposal is currently in its draft phase, however it is already implemented in Chrome starting with version 79. This is currently supported on PC using Chrome or Firefox and on Mobile and Meta Quest platform using the Chrome browser which can be enabled adding a flag in chrome://flags. 

We have added a new project template to start using WebXR AR technology + WebGL on Evergine, and we will continue following this interesting new standard for Web platforms. 

Render on Windows Form controls 

With this new release you can render Evergine not only in a Windows Forms window (taking the whole window space), but also using a custom control as a rendering target. This will let you combine an Evergine surface with other Windows Forms controls. 

To use Evergine as a user control, just use FormsSurface and register it as a rendering control: 

var surface = windowsSystem.CreateSurface(0, 0) as FormsSurface; 

window.SetEvergineControl(surface.NativeControl); 

windowsSystem.RegisterLoopThreadControl(surface.NativeControl); 

window.Show(); 

 

Take a look at our UIWindowsSystemDemo for more information. 

More documentation 

We have continued to improve the documentation reference website, adding information about the new extensions added, ImGui and ARMobile. Expanding the documentation on XRPlatform with new features and creating two new big sections to describe how to work with Audio and Physics. Audio represents a core part of the engine where we explain the complete workflow to add sound and effect to the projects and inside the new Physics section we have tried to explain in detail the possibilities offered by the physics engine. 

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

Upgrade guide 

We have made some changes to support LOD in models that require this type of assets to be exported again. If you are planning to update an existing project, you should remove the .evergine folder (at the same level as your Evergine project file) to force this export process. 

Future work 

We are going to release more minor versions during this year but the next major will happen in 2023, we are going to continue working closely with the companies which are already using Evergine in their products and with those who will start using it now. We are working to support new industrial file formats, new platforms and technologies. And finally, we will continue to improve our Web platform supporting new standards to help companies to create new 3D products based on Evergine. 

 Hope you enjoy reading this as much as we enjoyed writing it. 

 Have a nice day! 

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