noviembre 16, 2021

Descubre Evergine... ¡mejor que nunca!

Estamos encantados de compartir todas las cosas geniales que hemos construido durante el último año en nuestro motor gráfico. Empezamos WaveEngine hace 10 años con un gran equipo de profesionales y hemos aprendido mucho en todo este camino. Ahora estamos listos para avanzar con este proyecto al siguiente nivel y por eso hemos decidido renombrar esta tecnología a Evergine, con una visión muy clara.

Nuestra misión es crear un gran motor gráfico basado en el lenguaje C# para llevar los últimos avances de gráficos al sector industrial, para hacer posible que las empresas actualicen o creen nuevos productos con contenido 3D más fácilmente que antes; y para que lo ofrezcan en una amplia gama de dispositivos y plataformas.

Con Evergine hemos creado una plataforma gráfica unificada que soporta las APIs gráficas más populares como DirectX, Vulkan, OpenGL, Metal y WebGL, funcionando en escritorio, móvil y plataforma web. Y utilizando los últimos avances en rendimiento de .Net 6.0 e integrando también las tecnologías UI más utilizadas como WPF, Windows Forms, SDL, GTK, Cocoa y la reciente tecnología WinUI lanzada por Microsoft.

Puedes descargar Evergine aquí:

 

Lo más destacado de Evergine

  • Nuevo launcher
  • Nuevas plantillas de .Net 6 con C# 10
  • Compatibilidad con proyectos de Visual Studio 2022
  • Nueva API de RayTracing
  • Nuevo sitio web de documentación
  • Nuevo sistema de paquetes
  • Depuración de aplicaciones web WASM
  • Soporte para Entity Prefabs
  • Nueva herramienta gráfica de post-procesamiento
  • AMD FidelityFX super resolution
  • Soporte de aplicaciones WinUI
  • Próximos Addons
  • Nueva extensión ImGUI
  • Nueva API para GPU Queries

 

Plataforma gráfica unificada

Evergine ofrece una plataforma gráfica unificada que utiliza las últimas APIs gráficas como DirectX, Vulkan, OpenGL, Metal y WebGL. Las nuevas capacidades y mejoras están disponibles para todas las plataformas al mismo tiempo y su código que se ejecuta en el escritorio, móvil y web.

supported apis evergine

Evergine pasa a un nuevo formato de versiones. Nos hemos saltado nuestra versión 4.0 y ahora utilizamos el versionado de calendario.

[Año].[Mes].[Día].[Build]

Mantener a nuestros clientes funcionando con las mejores y más recientes versiones de Evergine es uno de nuestros principales objetivos, y esto ayudará a comprobar si la versión que se está ejecutando está potencialmente desactualizada.

Nuestra primera version de Evergine es 2021.11.17.X

.Net 6 y C# 10

Evergine es el primer motor gráfico que ofrece soporte oficial para .Net 6 y C# 10. Hay nuevas plantillas de proyecto dirigidas al nuevo .Net 6 LTS desde el nuevo Launcher de Evergine.

Esta transición comenzó hace dos años, cuando empezamos a utilizar .Net Core, y el año pasado nos convertimos en uno de los primeros motores gráficos compatibles con.Net 5. Todo este duro trabajo nos ayudó a hacer una transición rápida a .Net 6 solo una semana después de que Microsoft lanzara esta nueva tecnología.

Utilizando .Net 6 y Visual Studio 2022 tendrás acceso automáticamente a las funciones más avanzadas de C# y del tiempo de ejecución de .Net, como un lower memory usage, faster code, hot reload, IL trimming, faster IO operations, Record structs or ARM64 support.

Nuevo Launcher

El launcher fue reescrito casi completamente en Evergine, con el enfoque de tener en un único lugar todos los recursos necesarios para crear aplicaciones utilizando Evergine en un solo lugar.

Ahora puedes instalar múltiples versiones de Evergine con un solo clic y puedes configurar fácilmente diferentes fuentes de paquetes nugets como un local package source.

Hemos publicado nuestro canal interno de nightlys como una nueva fuente, por lo que ahora puedes probar todas las características experimentales.

El nuevo launcher presenta nuevas secciones como Samples, Learning ans Support, para que todos los recursos interesantes para los desarrolladores sean fáciles de encontrar.

Launcher evergine

Nueva documentación

Hemos creado una nueva guía de documentación completa que cubre todos los temas importantes necesarios para empezar a utilizar Evergine. Mejorar la sección de documentación fue una de las peticiones más importantes en nuestra página de GitHub de comentarios y este es el resultado.

Documentation evergine

Soporte RayTracing

Evergine es fácil de integrar en aplicaciones de escritorio y sitios web, pero, al mismo tiempo, tendrás acceso a los últimos avances en tecnologías gráficas como RTX de Nvidia.

La tecnología RTX utiliza las nuevas series de tarjetas gráficas para renderizar contenidos 3D utilizando RayTracing en tiempo real, lo que supone una buena alternativa para mejorar la sensación de realismo de nuestro renderizado en comparación con la tecnología de rasterización tradicional.

La tecnología Raytracing está soportada en Evergine como parte de su API low level funcionando sobre DirectX 12 y Vulkan.

Effects evergine

Sistema de paquetes

La reutilización es un concepto muy extendido en el desarrollo de software y nosotros, como desarrolladores, siempre estamos pensando en formas de aislar partes de nuestro código para crear libraries, code snippets o assets que puedan ser usados desde diferentes proyectos. En el mundo .NET, es muy común crear paquetes NuGet para compartir libraries.

Evergine en sí mismo utiliza el formato NuGet para ser distribuido, y gracias a ello proporcionamos muchos comportamientos, componentes y servicios incorporados, pero no es tan fácil si quieres compartir activos como texturas, efectos o materiales de la carpeta de Contenido de un proyecto Evergine. Para resolver este problema, hemos estado trabajando en un nuevo sistema de paquetes, que te permitirá distribuir assets que pueden ser reutilizados en muchos proyectos.

Actualmente, la plantilla del proyecto por defecto utiliza este nuevo sistema de paquetes para distribuir todos los assets básicos bajo el nombre de paquete Evergine.Core.

Packages evergine

Depuración de aplicaciones WASM Web

Hemos desarrollado un conjunto de tecnologías sobre el nuevo .Net 6 y Blazor Webassembly SDK, incluidas en una plantilla WebGL totalmente nueva, que nos ha permitido habilitar una característica para los desarrolladores que faltaba hasta ahora: ¡depurar código c# compilado a webassembly en Visual Studio!

Solo tienes que crear un nuevo proyecto desde el nuevo Evergine Launcher, seleccionar la plantilla WebGL2.0, y abrir la solución desde Visual Studio. Después de configurar el proyecto como se indica en el README, pon un punto de interrupción en el código, pulsa el play, y comprueba la magia.

webassembly debugging

La compatibilidad con la depuración de Webassembly es, sin duda, un gran salto en la productividad del desarrollo, aumentando la calidad, la seguridad y el rendimiento de cada aplicación web de Evergine.

Nuevo Entity Prefab

Evergine está añadiendo una primera versión de nuestro nuevo sistema de Prefab, con un núcleo de características mientras trabajamos en añadir nuevas e interesantes características a este sistema. En esta primera versión, soportamos la creación e instanciación de Prefabs.

Prefabs evergine

Herramienta gráfica de post-procesamiento

Evergine incluye un nuevo asset de gráfico de post-procesamiento que te permite definir un grafo de los efectos de post-procesamiento utilizados en tu render.

Todos los nodos del gráfico de post-procesamiento están basados en Compute shaders para asegurar el mejor rendimiento en tu render; y estos pueden ser fácilmente editados en el editor de effect en el Evergine Studio.

Hemos incluido un grafo de post-procesamiento por defecto con los efectos más utilizados y su código fuente para ayudarte a crear nuevos efectos basados en computer shaders.

postprocessing graph editor

AMD FidelityFX Super Resolution (FSR)

FidelityFX Super Resolution utiliza tecnologías de escalado espacial superoptimizadas de última generación desarrolladas por AMD para ayudar a aumentar la velocidad de fotogramas de tus aplicaciones.

La tecnología AMD FSR es compatible como un nodo de compute, en el grafo de post-procesamiento por defecto, lo que te ayudará a renderizar escenas completas de alta calidad en tiempo real en una amplia gama de ordenadores.

Toma una imagen renderizada en color de entrada de baja resolución y aplica un algoritmo de superresolución para generar la salida con resolución final. Esto es interesante para renderizar archivos CAD complejos con millones de piezas diminutas sin aliasing y utilizando el modo de calidad el resultado es muy similar a la resolución nativa.

AMD FSR evergine

Soporte WinUI

WinUI es la tecnología de interfaz de usuario más reciente lanzada por Microsoft para facilitar la creación de aplicaciones modernas en todos los dispositivos Windows. Incorpora Fluent Design para permitir experiencias intuitivas, accesibles y potentes y los últimos patrones de interfaz de usuario.

Ahora, usando Evergine puedes crear aplicaciones 3D basadas en WinUI. Aquí tienes un ejemplo en: https://github.com/EvergineTeam/UIWindowSystemsDemo

WinUISample evergine

Extensión ImGUI

ImGui es una interfaz gráfica de usuario muy popular con muy pocas dependencias que utiliza una API simple y directa para presentar las interfaces usando la GPU.

Hemos creado una extensión interna bajo el espacio de nombres Evergine.ImGui que es muy útil para presentar información de diagnóstico.

Estamos trabajando en una nueva herramienta interna de diagnóstico que utiliza ImGui para presentar las estadísticas de los Frames y más información útil.

ImGui evergine

Próximos Addons

Estamos a punto de lanzar un gran conjunto de Addons que utilizan el nuevo sistema de paquetes. Esperamos que todos estos addons resuelvan algunos problemas clave a los que se enfrentan las empresas cuando crean aplicaciones industriales en 3D utilizando sus recursos habituales.

  • Azure Remote Rendering: Azure Remote Rendering lleva tu contenido 3D de máxima calidad y tus experiencias interactivas a la Realidad Mixta. Este servicio utiliza la potencia de cálculo de Azure para renderizar incluso los modelos más complejos en la nube y los transmite en tiempo real a tus dispositivos para que los usuarios puedan interactuar y colaborar con el contenido 3D con un detalle sorprendente.
  • Noesis GUI: es una biblioteca de interfaz gráfica de usuario ligera y multiplataforma basada en XAML y optimizada para GPUs. El uso de NoesisGUI con Evergine te permite crear atractivas interfaces de usuario utilizando potentes herramientas XAML como Microsoft Expression Blend.
  • Formatos CAD: Coge tu modelo industrial CAD/3D y llévalo a tu aplicación Evergine. Admite los formatos IFC, STEP, IGES, STL y OBJ.
  • MRTK: Evergine.MRTK es un proyecto que proporciona un conjunto de componentes y características utilizadas para acelerar el desarrollo de aplicaciones XR multiplataforma en Evergine. Evergine.MRTK proporciona un conjunto de bloques de construcción básicos para el desarrollo de Evergine en plataformas XR como:
    • Microsoft HoloLens 2
    • Windows Mixed Reality headsets
    • OpenVR headsets (HTC Vive / Oculus Rift)
  • Mapas Bing 3D: Llévate todo lo bueno de la cartografía 3D a Evergine. El complemento de Bing Maps es un control de mapas para Evergine que te permite utilizar los datos de mapas 3D de Bing Maps en tu aplicación.

 

Conclusiones

Esta es una gran versión con mejoras de rendimiento, funcionalidad y usabilidad, y anunciaremos muchas más características en las próximas semanas y meses.

Esta versión es el resultado del trabajo duro y de un gran equipo de personas con talento en muchas áreas con una idea clara: crear la mejor tecnología de gráficos posible para el sector industrial.

Esperamos que os haya resultado interesante y seguiremos colaborando con más empresas para ayudarles a crear soluciones 3D increíbles.

 

De parte del equipo de Evergine, ¡gracias!

Javier canton
Author
Javier Cantón
Plain Concepts Research
Categories