Cómo empezar a utilizar las herramientas de desarrollo de Metal para Windows.
Cómo obtener y utilizar las herramientas de desarrollo de Metal para Windows
Con el lanzamiento de macOS Sonoma, Apple también ha actualizado las versiones actuales de las herramientas de desarrollo de Metal para su uso en Windows. Aquí te explicamos cómo obtenerlas y utilizarlas.
Introducción a Metal
Metal es el marco de gráficos de Apple para macOS. Permite crear gráficos 2D y 3D ricos y de alto rendimiento utilizando el motor de gráficos de Apple optimizado para todos los dispositivos de la compañía. Aunque Metal se ejecuta en dispositivos Apple, también se puede utilizar Microsoft Windows como plataforma para crear activos, imágenes, sombreadores y texturas para su uso en Metal.
Descarga de las herramientas
Apple tiene dos descargas de Metal para Windows en su sitio web de herramientas de desarrollo: Metal Developer Tools 4.0 para Windows y Metal Shader Converter para Windows. Puedes descargar ambas iniciando sesión en tu cuenta de desarrollador de Apple en línea.
Para descargar las Metal Developer Tools para Windows, inicia sesión en tu cuenta de desarrollador de Apple, ve a la página de Descargas en tu navegador web y desplázate hasta Metal Developer Tools for Windows. Haz clic en la flecha Mostrar detalles, luego haz clic en Metal Developer Tools 4.0 Windows.pdf y Metal Developer Tools 4.0 Windows.exe para descargarlos en el almacenamiento de tu computadora. A continuación, desplázate un poco más abajo hasta Metal shader converter for Windows y haz clic en la flecha Mostrar detalles, luego haz clic en Metal Shader Converter for Windows.pdf y Metal Shader Converter for Windows.exe para descargarlos en el almacenamiento de tu computadora.
Instalación
Crea una nueva carpeta y mueve todos los archivos descargados a ella. Ahora tendrás cuatro elementos. Es posible que desees leer ambos archivos PDF antes de instalar las herramientas descargadas.
A continuación, si descargaste los archivos en tu Mac, conecta una unidad USB compatible con Windows u otro disco y copia los cuatro archivos en él. Utilizarás la unidad USB para copiar los archivos a tu máquina con Windows 10 o 11. Una vez que se haya completado la copia, conecta la unidad USB a tu computadora con Windows y copia los cuatro archivos. Ejecuta ambos archivos de instalación .exe para instalar las herramientas en tu máquina con Windows.
Uso de las herramientas
Una vez instaladas, puedes utilizar las herramientas para convertir sombreadores y activos en tu computadora con Windows a formatos que Metal acepte. La primera herramienta, TextureConverter, convierte texturas creadas en Windows a formatos de textura comprimida por GPU que Metal acepta. Para ver los detalles y las opciones de ejecución de TextureConverter, escribe en la línea de comandos de Windows: TextureConverter.exe –h y presiona Enter.
También se incluyen herramientas para compilar sombreadores gráficos y de cálculo desde Windows a Objetos de Biblioteca de Metal utilizando el Lenguaje de Sombreado de Metal de Apple. No se proporciona ninguna nota con las herramientas de Windows sobre cómo hacer esto, por lo que deberás leer «Building a Shader Library by Precompiling Source Files» en la sección «Shader Library» de la documentación de Metal en línea de Apple.
En resumen, utilizarás las herramientas para pasar de los formatos DXIL de Windows al formato intermedio .air, luego a un archivo .metalar y .metallib que se pueden cargar en Xcode y ejecutar desde tu aplicación en tiempo de ejecución.
Metal Shader Converter
La otra herramienta para Windows que se instala es el Metal Shader Converter para Windows. Esta herramienta convierte representaciones intermedias en forma de código de bytes LLVM IR en bytes de código aptos para ser cargados en Metal. LLVM es la infraestructura de compilador de código abierto utilizada por Xcode durante la compilación de proyectos. Puedes obtener más información sobre LLVM en llvm.org y sobre el formato de bytes (LLVM lo llama «bitcode») en la página de bitcode de ese sitio.
El Metal Shader Converter se proporciona tanto como una herramienta independiente como una biblioteca que puedes incorporar en tus propias herramientas si lo deseas. Consulta también el archivo de encabezado proporcionado, metal_irconverter_runtime.h. El Metal Shader Converter para Windows requiere Microsoft Windows 10 o posterior, así como Microsoft Visual Studio 2019 o posterior. Las bibliotecas construidas utilizando el Metal Shader Converter para Windows solo funcionan con macOS 14 Sonoma e iOS 17. Si se construyen para versiones anteriores del sistema operativo, es posible que algunas funciones no estén disponibles.
Ejecución de Metal Shader Converter
El primer y más sencillo uso de Metal Shader Converter para Windows es convertir un sombreador DirectX DXIL (DirectX Intermediate Language) de Windows en una biblioteca de sombreadores de Metal. Esto se puede hacer utilizando la herramienta de línea de comandos metal-shaderconverter. Por ejemplo: metal-shaderconverter shader.dxil -o ./shader.metallib. Puedes obtener más información sobre metal-shaderconverter en Windows ejecutando metal-shaderconverter –help en una ventana de comandos.
Biblioteca de Metal Shader Converter
También se proporciona una biblioteca de código dinámico (dylib) libmetalirconverter que funciona con proyectos en C, C++, Objective-C y Swift y te permite convertir DXIL a Metal utilizando la clase IRCompiler proporcionada. El código de conversión es bastante sencillo y se proporciona un código de muestra de menos de una página en el PDF de Metal Shader Converter. Básicamente, para utilizar la clase IRCompiler proporcionada, primero creas una instancia del objeto, estableces un nombre de punto de entrada, conviertes un objeto DXIL en un objeto IR utilizando la clase IRObject, lo compilas a Metal utilizando la función IRCompilerAllocCompileAndLink(), y luego inspeccionas el resultado. La clase IRMetalLibBinary proporcionada te permite cargar y manipular el objeto de Metal compilado.
El PDF de Metal Shader Compiler for Windows, que es bastante extenso, ofrece una gran cantidad de otras opciones que se pueden utilizar para la conversión de Windows a Apple Metal, incluidos atributos de vértice, objetos de estado de muestreo, buffers de argumentos, trazado de rayos y más. También hay consejos para lograr un rendimiento óptimo con Metal y consejos para manejar canalizaciones de sombreadores complejas, incluyendo geometría y teselación. El PDF también recomienda echar un vistazo al proyecto de código de muestra de Metal de Apple «Learn Metal with C++» en la página de código de muestra de Metal.
Recursos adicionales
Si no conoces C++, es recomendable comenzar con un libro clásico sobre C, como «The C Programming Language» de Brian Kernighan y el fallecido Dennis Ritchie, quienes crearon el lenguaje C en Bell Labs en la década de 1970 para crear el sistema operativo UNIX. C++, creado por Bjarne Stroustrup, se basa en C pero proporciona características de programación orientada a objetos (OOP) como clases, objetos, una Biblioteca de Plantillas Estándar (STL) y otras características modernas. El libro «The C++ Programming Language 4th Edition» de Stroustrup es una lectura imprescindible. Stroustrup también tiene un sitio web con varios libros y tutoriales útiles de C++.
CppCon, una conferencia anual de C++, se lleva a cabo cada año en octubre. Este año se llevará a cabo del 1 al 6 de octubre en Aurora, Colorado. CppCon también tiene un canal de YouTube con varios tutoriales excelentes de C++. C++ se hizo popular en 1994 cuando se hicieron evidentes los límites de los lenguajes basados en procedimientos como C. Hay varios estándares para C, incluidos C99, C11, C14, C17 y C22. APRESS tiene buenos libros sobre cada uno de los estándares. Puedes configurar qué estándares utiliza el compilador de Xcode en la sección de configuración de compilación de Xcode.
En 1989, en NeXT Computer, el equipo de NeXT creó Objective-C, que es un lenguaje OOP similar basado en C, pero que tiene beneficios adicionales como el enlace dinámico y la introspección de objetos. Cuando Apple compró NeXT en 1997, también adquirió toda la tecnología de NeXT, incluido Objective-C. Un gran libro definitivo…