septiembre 28, 2023

Evergine se expande a iOS con Metal API

En la próxima versión de Evergine, estamos encantados de anunciar la incorporación de soporte para iOS, marcando un hito importante en el desarrollo de nuestro motor gráfico. Esta característica tan esperada amplía los horizontes de Evergine, llevando la potencia y flexibilidad de nuestro motor a los desarrolladores de iOS, permitiéndoles crear aplicaciones de alto rendimiento y visualmente impactantes para la plataforma móvil de Apple. En este artículo, profundizaremos en los aspectos clave de esta actualización, centrándonos en la integración de Metal, nuestro nuevo entorno gráfico Metal y las perspectivas de compatibilidad con iOS. 

Soporte de iOS en Evergine 

La inclusión de soporte para iOS en Evergine es un paso trascendental para nuestro motor. iOS se ha establecido como una plataforma dominante en el mundo móvil, y la demanda de gráficos de alta calidad y rendimiento en aplicaciones iOS nunca ha sido mayor. Con esta versión, respondemos a la demanda de múltiples  de desarrolladores que buscan aprovechar las capacidades de Evergine para sus proyectos de iOS.

Llevando iOS a C# 

Para integrar sin problemas el soporte iOS en Evergine, hemos utilizado las últimas características de .NET 7.0 y la próxima .NET 8.0. Esto nos permite aprovechar la potencia de C# en el desarrollo de aplicaciones iOS. Gracias al target framework net7.0-ios utilizado en nuestro Evergine launcher , podemos acceder a todo el SDK de iOS, facilitando al usuario el desarrollo de aplicaciones gráficas multiplataforma.

Para más detalles sobre .NET e iOS, te recomiendo que leas más aquí 

Metal API 

Una de las claves de la compatibilidad con iOS en Evergine es la integración de la API gráfica Metal. Metal es una API gráfica propiedad de Apple que proporciona una interfaz de alto rendimiento y bajo nivel para la renderización en dispositivos iOS y macOS. Las ventajas de utilizar Metal sobre OpenGL son notables.

En esta versión de Evergine estamos introduciendo un nuevo backend de gráficos: Evergine.Metal, que proporciona una implementación de Metal API de la capa gráfica de bajo nivel de Evergine, similar a otras como DirectX11, DirectX12, Vulkan, OpenGL y WebGL (con la próxima WebGPU que será soportada en futuros planes).

En primer lugar, Metal está optimizado para el hardware de Apple, proporcionando acceso directo a la GPU. Esto se traduce en una mejora significativa del rendimiento de renderizado, una reducción de la sobrecarga y una mayor fidelidad visual. Los desarrolladores pueden aprovechar al máximo las eficientes capacidades multihilo del framework Metal, que son cruciales para ofrecer gráficos fluidos y con gran capacidad de respuesta en los dispositivos iOS.

Además, Metal ofrece funciones avanzadas como las tareas de cálculo en la GPU, lo que permite a los desarrolladores ampliar los límites del cálculo en la GPU en iOS más allá del renderizado tradicional. Gracias a las amplias prestaciones de Metal, los usuarios de Evergine pueden crear aplicaciones visualmente atractivas y con gran capacidad de respuesta que satisfacen las exigencias de los usuarios de dispositivos Apple. 

Nueva plantilla iOS con Visual Studio 

En esta nueva versión de Evergine, descubrirás un nuevo proyecto de plantilla iOS disponible a través del Evergine Launcher.

En este momento, esta plantilla está diseñada para ser abierta en Visual Studio para Windows, y para ser desplegada en su dispositivo iOS utilizando la función Pair to Mac. Puedes encontrar información útil aquí. 

Para acceder a la solución iOS de tu aplicación, simplemente ábrela desde el menú «File » en Evergine Studio.

 

Una vez que tu solución Evergine iOS se abre en Visual studio, encontrarás dos proyectos integrados en la solución. El primero es tu proyecto Evergine, mientras que el otro es el proyecto de  iOS, que hace referencia al proyecto Evergine.  

 

 

Para desplegar con éxito tu aplicación Evergine en tu dispositivo iOS, necesitas configurar correctamente la siguiente información: 

  • Configura las propiedades de iOS bundle signing (provisioning profiles, certificados de desarrollo, etc.).
  • Comprueba el archivo plist y establece el Application Bundle ID para que coincida con los perfiles de aprovisionamiento.
  • Asegúrate de que has emparejado tu Visual Studio a un Mac.

Planes futuros

Con el soporte de iOS ahora integrado en Evergine, hemos puesto nuestra mirada en el futuro. Estamos comprometidos a mejorar nuestra integración de Metal, aprovechando aún más las capacidades de este poderoso marco. He aquí un vistazo a nuestros planes de futuro: 

Apple Vision Pro 

El futuro inmediato de las aplicaciones inmersivas y la computación espacial pasa por las esperadas  Apple Vision Pro. Nuestro equipo es consciente de ello y está trabajando para llevar Evergine a esta increíble plataforma nueva.

Realidad aumentada con ARKit 

Al incorporar la compatibilidad con ARKit en Evergine, los desarrolladores obtendrán la capacidad de crear experiencias inmersivas de realidad aumentada que combinan a la perfección el contenido digital con el mundo real. Esto abre un mundo de posibilidades, desde escenarios interactivos hasta aplicaciones prácticas como la visualización del diseño de interiores y la educación. 

Conclusión

La inclusión de la compatibilidad con iOS en la última versión de Evergine representa un avance significativo en nuestra misión de proporcionar a los desarrolladores herramientas y tecnologías de vanguardia. Con las notables capacidades de rendimiento de Metal, las capacidades .NET y un perfil iOS dedicado, los desarrolladores tienen ahora el poder de crear aplicaciones excepcionales y visualmente cautivadoras para dispositivos iOS. Si miramos hacia delante, el futuro de la compatibilidad de Evergine con iOS rebosa potencial, con perspectivas apasionantes como Vision Pro y ARKit en el horizonte. 

David avila
Author
David Ávila
Plain Concepts Research

¿Ya te vas?

Suscríbete a nuestra newsletter para estar al día de las últimas noticias, casos de éxito y mucho más. 

No mandamos spam y puedes darte de baja en cualquier momento.