Saltar al contenido principal
septiembre 29, 2022

Llega la nueva versión estable de Evergine

Hoy anunciamos Evergine 2022.9.28. Esta es la segunda versión estable de este año 2022 siguiendo nuestro roadmap con 2 versiones estables por año. En esta versión estable hemos añadido un montón de nuevas características y mejoras gracias a los comentarios de nuestros clientes. 

¿Qué novedades hay? 

En esta versión nos hemos centrado en la corrección de errores y en la mejora del rendimiento, realizando grandes avances como la nueva API acelerada por hardware de matemáticas. También hemos añadido nuevas características de productividad como el nuevo editor de texto 3D, el soporte de los controles MRTK en Quest y el hand tracking. Desarrollamos nuevas herramientas como la extensión ARCore y una extensión ImGui que incluye las librerías ImPlot, ImNodes e ImGuizmo, entre otras herramientas que se añadieron al Evergine Studio. Por último, hemos mejorado aún más la documentación. Esperamos que disfrute de todos estos cambios. 

 Puedes descargar Evergine aquí: 

 Principales puntos de interés

Nuevo Editor de partículas 

El sistema de partículas en Evergine se utiliza para renderizar efectos que normalmente son difíciles de representar usando mallas o sprites, pero hasta esta versión el sistema de partículas en Evergine necesitaba ser configurado por código. En esta nueva versión principal, presentamos una nueva herramienta dentro de Evergine Studio para facilitar la configuración de todos los posibles parámetros soportados por este complejo sistema de partículas.

Continúa leyendo sobre el nuevo editor del sistema de partículas y sus características aquí.  

Integración de ARCore 

Una de las características más interesantes añadidas en esta versión para los desarrolladores móviles es el soporte de ARCore dentro de la extensión ARMobile. Esto permite acceder a la API de ARCore para rastrear el movimiento del dispositivo en el espacio que se utiliza para renderizar objetos 3D sobre la imagen de la cámara. La aplicación también tiene acceso a las funciones de estimación de la luz y de seguimiento de la cara.

Sigue leyendo sobre las nuevas funciones de la extensión ARMobile aquí.

Matemáticas basadas en SIMD 

La nueva versión de Evergine viene con mejoras de rendimiento en la librería Evergine.Mathematics. Ahora aprovecha el nuevo soporte de instrucciones de la API SIMD en NET6, lo que permite utilizar instrucciones aceleradas por hardware definidas por los fabricantes de CPUs. Por ello, la nueva API comprueba si el hardware soporta estas extensiones para utilizarlas y, en caso contrario, utiliza el codigo de compatibilidad con versiones anteriores en su lugar. En las arquitecturas x64 y x86 se pueden utilizar vectores SSE y AVX y en la arquitectura Arm64 es posible utilizar AdvSIMD. El resultado de todo este trabajo es una ganancia de rendimiento de 3-4 veces en las operaciones Math4x4, Matrix3x3, Quaternion y Vector4.

Más información sobre el nuevo SIMD basado en Math aquí.

MRTK en Quest 

Nuestro Mixed Reality Toolkit (MRTK), que contiene múltiples controles 3D, es útil para crear aplicaciones de Realidad Mixta en HoloLens 2, y ahora es compatible con los dispositivos Meta Quest, por lo que se puede utilizar para crear aplicaciones 3D en esta plataforma y el código será compartido en los dispositivos MR/VR. Esto puede ser útil para la creación rápida de prototipos de aplicaciones MR en Quest porque el despliegue es más rápido. 

Soporte en Quest Hand Tracking 

La integración de OpenXR trae ahora la capacidad de Hand Tracking (seguimiento de manos). Hand Tracking utilizado en las aplicaciones XR permite a los usuarios interactuar con objetos y entornos virtuales utilizando sus manos. Esta es una nueva forma de interactuar con su escena virtual sin la necesidad de los típicos controladores de mano.

Los dispositivos Meta Quest son los que más se beneficiarán de esta función.

Más información sobre el soporte de Quest Hand Tracking aquí.

picture about hand tracking in evergine

Nuevas asset para fuentes y texto

Hemos añadido en esta versión estable un nuevo tipo de asset y herramienta de edición para el texto 3D dentro de Evergine Studio. Este nuevo texto 3D está acelerado por hardware mediante GPU y utiliza la técnica multi-channel signed distance field para reducir el efecto de aliasing dependiendo del tamaño en pantalla. El nuevo Editor de Fuentes le permite utilizar archivos TTF para definir una nueva fuente y el conjunto de caracteres en codificación UTF-8 o ASCII que puede utilizar en los textos 3D.

Más información sobre las nuevas herramientas de texto 3D y fuentes aquí.  

picture about fonts in evergine

ImGui, ImPlot, ImNodes e ImGuizmo. 

Con la primera versión estable de este año introdujimos el soporte a la librería ImGui en nuestra API de bajo nivel. Para esta versión hemos creado una nueva extensión de ImGui que contiene un ImGuiManager para facilitar su uso desde nuestra API de alto nivel utilizando behaviors. También hemos añadido soporte para 3 de las más interesantes librerías de componentes y widgets sobre ImGui. 

  • ImGuizmo contiene algunos widgets 3D útiles para la creación rápida de prototipos de editores 3D.
  • ImPlot es una librería completa para renderizar gráficas básicas y avanzadas utilizando la GPU.
  • ImNodes pretende proporcionar una interfaz sencilla para crear un editor de gráficos de nodos.

Más información sobre esta nueva extensión aquí. 

SceneManager en Studio 

Hasta ahora, los SceneManagers necesitan ser configurados por código, pero, en esta versión, lanzamos una nueva forma de hacerlo desde el Studio. Dentro de Evergine Studio ve a la región de Entity Detail, y ahora encontrarás una nueva pestaña llamada Scene Managers. Allí puedes editar los parámetros de los managers que vienen por defecto como el AssetSceneManager, BehaviorManager o ShadowMapManager así como los SceneManager personalizados que escribas desde Visual Studio. 

Level of Detail para modelos 

El Level Of Detail (LOD) es una técnica que reduce el número de operaciones que Evergine requiere para renderizar modelos a diferentes distancias. Esta técnica permite a Evergine reducir la complejidad del modelo que renderiza de cada Entidad en función de su distancia a la cámara. Es posible configurar los niveles LOD desde una aplicación externa de modelado 3D y Evergine crea y configura automáticamente la Entidad y los componentes. La representación dentro del árbol jerárquico será una entidad padre con una entidad hija por cada nivel definido de LOD. La entidad padre debe tener un componente LODGroup que permite configurar todos los parámetros para renderizar correctamente este modelo dependiendo de la distancia a la cámara y cada hijo debe tener un componente LODEntry con la información requerida por el LODGroup para definir cada nivel. 

WebXR experimental template 

La Propuesta WebXR W3C está actualmente en su fase de borrador, sin embargo, ya está implementada en Chrome a partir de la versión 79. Actualmente está soportado en PC usando Chrome o Firefox y en plataforma móvil y Meta Quest usando el navegador Chrome que puede ser habilitado activando un flag en chrome://flags.

Hemos añadido una nueva plantilla de proyecto para empezar a utilizar la tecnología WebXR AR + WebGL en Evergine, y continuaremos siguiendo este interesante nuevo estándar para plataformas web. 

Windows Form control render

Con esta nueva versión puedes renderizar Evergine, no solo en una ventana de Windows Forms (ocupando todo el espacio de la ventana), sino también utilizando un control personalizado como objetivo de renderización. Esto le permitirá combinar una superficie de Evergine con otros controles de Windows Forms.

Para utilizar Evergine como un control de usuario, sólo tiene que utilizar FormsSurface y registrarlo como un control de renderizado: 

 

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

window.SetEvergineControl(surface.NativeControl); 

windowsSystem.RegisterLoopThreadControl(surface.NativeControl); 

window.Show(); 

 

Da un vistazo en UIWindowsSystemDemo para más información. 

Más documentación 

Hemos seguido mejorando la web de referencia de la documentación, añadiendo información sobre las nuevas extensiones añadidas, ImGui y ARMobile. Ampliando la documentación sobre XRPlatform con nuevas características y creando dos nuevas grandes secciones para describir cómo trabajar con Audio y Física. El Audio representa una parte fundamental del motor donde explicamos el flujo de trabajo completo para añadir sonido y efectos a los proyectos y dentro de la nueva sección de Física hemos tratado de explicar en detalle las posibilidades que ofrece el motor de física.

 Consulta todos los cambios en https://docs.evergine.com/ 

Guía de actualización 

Hemos hecho algunos cambios para soportar LOD en los modelos que requieren que este tipo de assets sean exportados de nuevo. Si estás planeando actualizar un proyecto existente, debes eliminar la carpeta .evergine (al mismo nivel que tu archivo de proyecto Evergine) para forzar el proceso de exportación de assets. 

Próximos pasos

Vamos a lanzar más versiones menores durante este año, pero la próxima principal tendrá lugar en 2023. Vamos a seguir trabajando estrechamente con las empresas que ya están utilizando Evergine en sus productos y con las que van a empezar a utilizarlo ahora. Estamos trabajando para dar soporte a nuevos formatos de archivos industriales, nuevas plataformas y tecnologías. Y, por último, seguiremos mejorando nuestra plataforma web soportando nuevos estándares para ayudar a las empresas a crear nuevos productos 3D basados en Evergine.

Espero que hayas disfrutado leyendo este artículo tanto como nosotros hemos disfrutado escribiéndolo.

 ¡Que tengas un buen día! 

Javier Cantón
Autor
Javier Cantón
Plain Concepts Research