Apple anunció la inclusión de Metal 3 en macOS Ventura e iOS 16, que incluye diversas características nuevas para ponerla a esta biblioteca gráfica en línea con Vulkan o DirectX 12. Entre las novedades se encuentran cosas como sombreadores en malla, compilación en diferido, carga rápida de recursos —su versión de DirectStorage—, mejoras al entrenamiento de aprendizaje automático, y optimizaciones al trazado de rayos en tiempo real. Pero hay una cosa más interesante como es MetalFX Upscaling, su propia tecnología de escalado de imagen.

El nombre sigue lo marcado por AMD con FidelityFX Super Resolution, y es probable que se base en ello debido a que es de código abierto y por tanto susceptible de reutilizarse. El escalado se podrá elegir entre uno espacial (a lo FSR 1.0) y otro temporal (a lo FSR 2.0), lo cual aplica también un suavizado temporal (TAA).

Va a dar más detalles mañana, 8 de junio, de MetalFX Upscaling en otra sesión, pero no creo que pueda decir nada que no se sepa ya de estas tecnologías de escalado. Dará algunos ejemplos, dirá cómo se implementa y poco más. Los primeros juegos en llegar con MetalFX Upscaling serán los portados a macOS de Resident Evil: Village y No Man's Sky.

Los sombreadores en malla son una característica de la que Microsoft ha hablado mucho y que está implementada en las tarjetas gráficas de NVIDIA y AMD. Hay que irse a la arquitectura Turing, a 2018, para ver cómo mostraba NVIDIA este tipo de sombreadores basado en mallas para acelerar la renderización de gráficos. Metal 3 incluye esta posibilidad, lo cual acelera la renderización basándose en la distancia de los objetos respecto al punto de vista.

Los objetos más lejanos se renderizan con menos polígonos y los más cercanos con el máximo de poligonos. Básicamente el sombreado en malla se salta todo el proceso de evaluación y generación tradicional, lo cual además de reducir el uso de la GPU también reduce la memoria de vídeo necesaria.

Dentro de la carga rápida de recursos, un intento de imitar al DirectStorage de DirectX 12, la teoría es la misma: cargar cuanto antes las texturas y otros recursos para poder renderizar las imágenes a máxima resolución lo antes posible. A continuación se puede ver la tubería usada ahora en Metal 2 y la que se usará en Metal 3 para la carga de recursos.

En cuanto a las optimizaciones en la generación de trazado de rayos, la nueva tubería gráfica creada para Metal 3 acelera enormemente su aplicación. Hay un nuevo sistema de detección de objetos, que es la «jerarquía de delimitadores de volúmenes» (BVH, bounding volume hierarchy). Es la parte fundamental para el trazado de rayos y así poder ver cómo rebotan los rayos entre los objetos, cuáles van a estar a la vista o no, etc.

Además, Metal 3 pasa a la GPU el conformado de la escena, reduciendo el uso de la CPU al mínimo. Todo esto también acelera sustancialmente la detección de intersecciones y el sombreado. Hay que tener en cuenta que los procesadores de Apple, la serie M, son de memoria unificada, lo cual para estos procesadores intensivos de memoria salen muy beneficiados.

En cuanto al aprendizaje automático, Metal aporta nuevas bibliotecas y compatibilidades frente a hacer las operaciones en la CPU, como TensorFlow, PyTorch, la parte de inferencia de DaVinci Resolve, etc.

Metal 3 estará disponible para iOS, iPadOS y macOS a partir del iPhone 11, iPad de 9.ª generación, y los MacBook a partir de 2017 con un chip de Apple, Vega, RX 5000 y RX 6000 de AMD, así como la UHD Graphics 630 y las Iris Pro de Intel.

Vía: Sesiones de la WWDC 2022.