November 16, 2021

Discover Evergine... more than ever!

We are thrilled to share all the cool things we built last year in our graphics engine. We started WaveEngine 10 years ago with a great team of professionals, we have learned a lot in all this journey and now we are ready to move forward with this project to the next level and that is why we have decided to rebrand this technology to Evergine with a clear vision.

Our mission is to create a great graphics engine based on the C# language to bring the latest advances on graphics computers to the industrial sector, to make it possible for companies to update or create new products with 3D content easier than before, and for them to offer it across a wide range of devices and platforms.

With Evergine, we have created a unified graphics platform that supports the most popular graphics APIs like DirectX, Vulkan, OpenGL, Metal, and WebGL, running on desktop, mobile, and web platform and using the latest performance advances in .Net 6.0 and also integrating the most used UI technologies like WPF, Windows Forms, SDL, GTK, Cocoa and the recent WinUI technology launched by Microsoft.

You can download Evergine:

 

Evergine Highlights

  • New launcher
  • New .Net 6 templates with C# 10
  • Visual Studio 2022 project support
  • New RayTracing API
  • New documentation website
  • New Package System
  • Debugging WASM web apps
  • New Entity Prefabs
  • New PostProcessing graph tool
  • AMD FidelityFX Super Resolution
  • WinUI application support
  • New incoming Addons
  • New ImGUI extension
  • New GPU Queries API

 

Unified Graphics platform

Evergine delivers a unified graphics platform using the latest graphics APIs like DirectX, Vulkan, OpenGL, Metal, and WebGL. New capabilities and improvements are available for all platforms at the same time and your code running on desktop, mobile, and web.

supported apis evergine

 

Evergine moves to a new release versioning, we have skipped our 4.0 version and we are now using Calendar Versioning.

[Year].[Month].[Day].[Build]

Keeping our customers running on the best and latest versions of Evergine is one of our major goals, and this will help to check if the version running is potentially out of date.

Our first Evergine version is 2021.11.17.X

 

.Net 6 and C# 10

Evergine is the first graphics engine to offer official support to .Net 6 and C# 10. There are new project templates targeting the new .Net 6 LTS from the new Evergine launcher.

This transition started 2 years ago when we started using .Net Core, and last year we became one of the first graphics engines to support .Net 5. All this hard work helped us to make an easy transition to .Net 6 just one week after Microsoft released this new technology.

Using .Net 6 and Visual Studio 2022 you will get access automatically to the most advanced features in C# and in the .Net runtime, like lower memory usage, faster code, hot reload, IL trimming, faster IO operations, Record structs, or ARM64 support.

 

New Launcher

The launcher was almost completely rewritten in Evergine, with a focus on creating a new starting point that presents all the resources needed to create applications using Evergine in one place.

Now you can install multiple Evergine versions with one click and can easily configure different sources which allow you to configure a local package source.

We have published our internal nightly channel as a new source so now you can try all the experimental features using this channel.

The new launcher presents new sections like Samples, Learning, and Support to make all the interesting resources for developers easy to find.

Launcher evergine
 

New documentation

We have created a new complete documentation guide covering all the important topics needed to start using Evergine. Improving the documentation section was one of the most important requests on our feedback GitHub page and this is the result.

Documentation evergine
 

RayTracing support

Evergine is easy to integrate into desktop applications and websites but at the same time, you will get access to the latest advances in graphics technologies like RTX from Nvidia.

RTX technology uses the new graphics cards series to render 3D content using raytracing in real-time which is a good alternative to improve the realistic feel of our render compared with traditional rasterization technology.

Raytracing technology is supported in Evergine as part of its low-level API on top of DirectX 12 and Vulkan.

Effects evergine
 

Package System

Reusability is a widespread concept in software development and we, as developers, are always thinking of ways to isolate parts of our code to create libraries, code snippets, or assets that could be consumed from different projects. In the .NET world, it’s very common to create NuGet packages to share libraries.

Evergine itself uses the NuGet format to be distributed, and thanks to that we provide many built-in behaviors, components, and services, but it’s not as easy if you want to share assets like textures, effects, or materials from the Content folder of an Evergine project. To solve this problem, we have been working on a new package system, that will allow you to distribute assets that can be reused in many projects.

Currently, the default project template uses this new package system to distribute all the basic assets under the name Evergine.Core package.

Packages evergine
 

Debugging WASM Web apps

We have developed a set of technologies on top of the new .Net 6 and Blazor Webassembly SDK, included in a totally new WebGL template, which has allowed us to enable a feature for developers which was missing until now: debug c# code compiled to webassembly on Visual Studio!

Just create a new project from the new Evergine Launcher, select the WebGL2.0 template, and open the solution from Visual Studio. After setting up the project as indicated in the README, put a breakpoint in the code, press play, and see the magic work.

webassembly debugging

Webassembly debugging support is undoubtedly a big leap in development productivity, increasing the quality, security, and performance of every Evergine web application.
 

New Entity Prefabs

Evergine is adding an early version of our new Prefab system, with a core of features while we’re working on adding interesting new features to this system. In this first version, we support the prefab creation and instancing.

Prefabs evergine
 

PostProcessing graph tool

Evergine includes a new post-processing graph asset that allows you to define a graph of the postprocessing effects used in your render.

All the post-processing graph nodes are based on Compute shaders to ensure the best performance in your render, and these can be easily edited into the effects tool in the Evergine Studio.

We have included a default post-processing graph as well with the most used effects and its source code to help you create new post effects based on compute shaders.

postprocessing graph editor
 

AMD FidelityFX Super Resolution (FSR)

FidelityFX Super Resolution uses cutting-edge super optimized spatial upscaling technologies developed by AMD to help boost the framerate of your applications.

AMD FSR technology is supported as a compute node in the default post-processing graph, which will help you to render complete high-quality scenes in real-time on a wide range of computers.

It takes a low-resolution input color rendered image and applies a super-resolution algorithm to generate the final resolution output. This is interesting for rendering complex CAD files with millions of tiny parts without aliasing and by using the quality mode the result is very similar to native resolution.

AMD FSR evergine
 

WinUI support

WinUI is the most recent UI technology launched by Microsoft to make it easy to build modern applications on every Windows device. It embodies Fluent Design to enable intuitive, accessible, and powerful experiences and the latest user interface patterns.

Now using Evergine you can start creating WinUI based 3D applications. We have created an example at: https://github.com/EvergineTeam/UIWindowSystemsDemo

WinUISample evergine
 

ImGUI Extension

ImGui is a very popular graphical user interface with minimal dependencies which use a simple direct API to present GPU interfaces.

We have created an internal extension under the namespace Evergine.ImGui which is very useful to present diagnostics information.

We are working on a new diagnostics internal tool using ImGui to present internal frame stats and more useful information.

ImGui evergine
 

Incoming Addons

We are just about to release a great set of addons using the new package system. All these addons are expected to resolve some key issues that companies face when they create industrial 3D applications using their common resources.

  • Azure Remote Rendering: Azure Remote Rendering brings your highest quality 3D content and interactive experiences to Mixed Reality. This service uses the computing power of Azure to render even the most complex models in the cloud and streams them in real-time to your devices so that users can interact and collaborate with 3D content in amazing detail.
  • Noesis GUI: NoesisGUI is a lightweight cross-platform graphic user interface library based on XAML and optimized for GPUs. Using NoesisGUI with Evergine allows you to create appealing User Interfaces using powerful XAML tools like Microsoft Expression Blend.
  • CAD Formats: Take your industrial CAD/3D model and bring it into your Evergine application. Supports IFC, STEP, IGES, STL and OBJ formats.
  • MRTK: Evergine.MRTK is a project that provides a set of components and features used to accelerate cross-platform XR application development in Evergine. Evergine.MRTK provides a set of basic building blocks for Evergine development on XR platforms such as:
    • Microsoft HoloLens 2
    • Windows Mixed Reality headsets
    • OpenVR headsets (HTC Vive / Oculus Rift)
  • Bing Maps 3D: Bring everything cool about 3D mapping to Evergine. The Bing Maps add-on is a map control for Evergine that allows you to use Bing Maps 3D mapping data in your application.

 

Closing

This is a huge release with performance, functionality, and usability improvements, and we will announce many more features in the coming weeks and months.

This release is the result of hard work and a great team of talented people in many areas with a clear idea: to create the best graphics technology possible for the industrial sector.

We hope you found this interesting and we will continue collaborating with more companies to help them create amazing 3D solutions.

 

As part of the Evergine Team, Thank you.

Javier canton
Author
Javier Cantón
Plain Concepts Research
Categories