Microsoft DirectX es una colección de interfaces de programación de aplicaciones (API) para gestionar tareas relacionadas con multimedia , especialmente programación de juegos y vídeo, en las plataformas de Microsoft . Originalmente, los nombres de estas API empezaban con "Direct", como Direct3D , DirectDraw , DirectMusic , DirectPlay , DirectSound , etc. El nombre DirectX se acuñó como un término abreviado para todas estas API (la X representa los nombres de las API en particular) y pronto se convirtió en el nombre de la colección. Cuando Microsoft se propuso más tarde desarrollar una consola de juegos , la X se utilizó como base del nombre Xbox para indicar que la consola se basaba en la tecnología DirectX. [3] La inicial X se ha utilizado en la denominación de las API diseñadas para Xbox, como XInput y Cross-platform Audio Creation Tool (XACT), mientras que el patrón DirectX se ha mantenido para las API de Windows, como Direct2D y DirectWrite .
Direct3D (la API de gráficos 3D de DirectX) se utiliza ampliamente en el desarrollo de videojuegos para Microsoft Windows y la línea de consolas Xbox . Direct3D también se utiliza en otras aplicaciones de software para tareas de visualización y gráficos, como la ingeniería CAD/CAM. Como Direct3D es el componente más publicitado de DirectX, es habitual ver que los nombres "DirectX" y "Direct3D" se utilizan indistintamente.
El kit de desarrollo de software (SDK) de DirectX consta de bibliotecas de runtime en formato binario redistribuible, junto con la documentación y los encabezados que las acompañan para su uso en la codificación. Originalmente, los runtimes sólo los instalaban los juegos o explícitamente el usuario. Windows 95 no se lanzó con DirectX, pero DirectX se incluyó con Windows 95 OEM Service Release 2. [4] Tanto Windows 98 como Windows NT 4.0 se entregaron con DirectX, al igual que todas las versiones de Windows lanzadas desde entonces. El SDK está disponible como descarga gratuita. Si bien los runtimes son software propietario y de código cerrado, se proporciona el código fuente para la mayoría de las muestras del SDK. A partir del lanzamiento de Windows 8 Developer Preview, DirectX SDK se ha integrado en Windows SDK. [5]
A finales de 1994, Microsoft estaba listo para lanzar Windows 95 , su próximo sistema operativo . Un factor importante en su valor para los consumidores eran los programas que podrían ejecutarse en él. El empleado de Microsoft Alex St. John había estado en conversaciones con varios desarrolladores de juegos para preguntarles qué probabilidades había de que llevaran sus juegos MS-DOS a Windows 95, y encontró que las respuestas eran en su mayoría negativas, ya que los programadores habían descubierto que el entorno Windows no proporcionaba las características necesarias que estaban disponibles bajo MS-DOS utilizando rutinas de BIOS o acceso directo al hardware. [6] También hubo fuertes temores de compatibilidad; un caso notable de esto fue el de Animated Storybook: The Lion King de Disney, que se basó en la interfaz de programación WinG . [7] Debido a numerosos controladores de gráficos incompatibles de las nuevas computadoras Compaq que no fueron probadas con la interfaz WinG que venía incluida con el juego, se bloqueaba con tanta frecuencia en muchos sistemas de escritorio que los padres habían inundado las líneas de ayuda telefónica de Disney . [8] [9]
St. John reconoció que las resistencias para el desarrollo de juegos bajo Windows serían una limitación, y reclutó a dos ingenieros adicionales, Craig Eisler y Eric Engstrom , para desarrollar una mejor solución para conseguir que más programadores desarrollaran juegos para Windows. El proyecto recibió el nombre en código de Proyecto Manhattan, como el proyecto de la Segunda Guerra Mundial del mismo nombre , y la idea era reemplazar las consolas de videojuegos desarrolladas en Japón por computadoras personales que ejecutaran el sistema operativo de Microsoft. [8] Inicialmente había utilizado el símbolo de radiación como su logotipo, pero Microsoft le pidió al equipo que cambiara el logotipo. [8] La gerencia no estuvo de acuerdo con el proyecto porque ya estaban descartando a Windows como plataforma de juegos, pero los tres se comprometieron con el desarrollo de este proyecto. [9] Su naturaleza rebelde llevó a Brad Silverberg , el vicepresidente sénior de productos de oficina de Microsoft, a nombrar al trío los "Beastie Boys". [10]
La mayor parte del trabajo de los tres se realizó entre otros proyectos asignados a partir de finales de 1994. [9] En cuatro meses y con el aporte de varios fabricantes de hardware, el equipo había desarrollado el primer conjunto de interfaces de programación de aplicaciones (API) que presentaron en la Game Developers Conference de 1995. [9] El SDK incluía bibliotecas que implementaban DirectDraw para gráficos de mapa de bits, [11] DirectSound para audio, [12] y DirectPlay para la comunicación entre jugadores a través de una red. [13] Además, una API de joystick extendida ya presente en Windows 95 se documentó por primera vez como DirectInput, [14] mientras que una descripción de cómo implementar el inicio inmediato del procedimiento de instalación de un título de software después de insertar su CD-ROM, una característica llamada AutoPlay, también era parte del SDK. [15] La parte "Direct" de la biblioteca se denominó así porque estas rutinas pasaban por alto las rutinas centrales existentes de Windows 95 y accedían al hardware de la computadora solo a través de una capa de abstracción de hardware (HAL). [16] Aunque el equipo lo había llamado "Game SDK" ( kit de desarrollo de software ), el nombre "DirectX" surgió de un periodista que se había burlado del esquema de nombres de las distintas bibliotecas. El equipo optó por seguir utilizando ese esquema de nombres y llamar al proyecto DirectX. [8]
La primera versión de DirectX se lanzó en septiembre de 1995 como Windows Game SDK. Su componente DirectDraw fue el reemplazo de Win32 para DCI [17] y las API de WinG para Windows 3.1 . [18] DirectX permitió que todas las versiones de Microsoft Windows, comenzando con Windows 95, incorporaran multimedia de alto rendimiento. Eisler escribió sobre el frenesí por desarrollar DirectX 1 a 5 en su blog. [19]
Para conseguir que más desarrolladores se sumen a DirectX, Microsoft se puso en contacto con John Carmack de id Software y le ofreció portar Doom y Doom 2 de MS-DOS a DirectX, de forma gratuita, y que id conservara todos los derechos de publicación del juego. Carmack estuvo de acuerdo y Gabe Newell , de Microsoft, lideró el proyecto de portación. El primer juego se lanzó como Doom 95 en agosto de 1996, el primer juego publicado con DirectX. Microsoft promocionó el juego intensamente y Bill Gates apareció en los anuncios del título. [8]
DirectX 2.0 se convirtió en un componente integrado de Windows con el lanzamiento de Windows 95 OSR2 y Windows NT 4.0 a mediados de 1996. Dado que Windows 95 en sí era todavía nuevo y pocos juegos se habían lanzado para él, Microsoft se dedicó a una intensa promoción de DirectX entre los desarrolladores que, en general, desconfiaban de la capacidad de Microsoft para crear una plataforma de juegos en Windows. Alex St. John, el evangelista de DirectX, organizó un elaborado evento en la Conferencia de Desarrolladores de Juegos de Computadora de 1996 que el desarrollador de juegos Jay Barnson describió como de temática romana , que incluía leones reales , togas y algo parecido a un carnaval de interior. [20] Fue en este evento donde Microsoft presentó por primera vez Direct3D y demostró cómo se jugaba MechWarrior 2 multijugador a través de Internet.
El equipo de DirectX se enfrentó a la difícil tarea de probar cada versión de DirectX en una variedad de hardware y software informáticos . Se probaron una variedad de diferentes tarjetas gráficas, tarjetas de audio, placas base, CPU, dispositivos de entrada, juegos y otras aplicaciones multimedia con cada versión beta y final. El equipo de DirectX también creó y distribuyó pruebas que permitieron a la industria del hardware confirmar que los nuevos diseños de hardware y versiones de controladores serían compatibles con DirectX.
Antes de DirectX, Microsoft había añadido OpenGL a su plataforma Windows NT . [21] OpenGL había sido diseñado como una interfaz de software independiente del sistema de ventanas y multiplataforma para hardware de gráficos por Silicon Graphics, Inc. para llevar la programación de gráficos 3D a la corriente principal de la programación de aplicaciones. Además, también podía utilizarse para gráficos e imágenes 2D y estaba controlado por el Architectural Review Board (ARB), que incluía a Microsoft. [22] [23] Direct3D estaba destinado a ser una alternativa controlada por Microsoft a OpenGL, centrada inicialmente en el uso de juegos. A medida que los juegos 3D crecían, los desarrolladores de juegos descubrieron que OpenGL podía utilizarse de forma eficaz para el desarrollo de juegos. [24] En ese momento comenzó una "batalla" entre los partidarios del OpenGL multiplataforma y el Direct3D exclusivo para Windows. [25] Por cierto, OpenGL recibió el apoyo de Microsoft del equipo DirectX. Si un desarrollador decidía utilizar la API de gráficos 3D OpenGL en juegos de computadora , las otras API de DirectX además de Direct3D a menudo se combinaban con OpenGL porque OpenGL no incluye todas las funciones de DirectX (como sonido o compatibilidad con joystick).
En una versión específica de consola, DirectX se utilizó como base para la API de consola de Microsoft para Xbox , Xbox 360 y Xbox One . La API fue desarrollada conjuntamente entre Microsoft y Nvidia , que desarrolló el hardware gráfico personalizado utilizado por la Xbox original. La API de Xbox era similar a la versión 8.1 de DirectX, pero no se puede actualizar como otras tecnologías de consola. El nombre en código de Xbox era DirectXbox, pero se acortó a Xbox para su nombre comercial. [26]
En 2002, Microsoft lanzó DirectX 9 con soporte para el uso de programas de sombreado mucho más largos que antes con la versión 2.0 de sombreado de píxeles y vértices. Microsoft ha seguido actualizando la suite DirectX desde entonces, introduciendo Shader Model 3.0 en DirectX 9.0c, lanzado en agosto de 2004.
A partir de abril de 2005, DirectShow se eliminó de DirectX y se trasladó al Microsoft Platform SDK .
Se ha confirmado que DirectX está presente en Windows Phone 8 de Microsoft . [27]
El trazado de rayos en tiempo real se anunció como DXR en 2018. El soporte para compilar HLSL a SPIR-V también se agregó en DirectX Shader Compiler el mismo año. [28]
DirectX se compone de múltiples API:
Microsoft ha dejado obsoletos los siguientes componentes:
La funcionalidad de DirectX se proporciona en forma de objetos e interfaces de estilo COM . Además, aunque no son componentes de DirectX en sí, se han creado objetos administrados sobre algunas partes de DirectX, como Managed Direct3D [31] y la biblioteca de gráficos XNA [32] sobre Direct3D 9.
Microsoft distribuye una herramienta de depuración para DirectX llamada "PIX". [33]
Presentado por Microsoft en 2002, DirectX 9 fue un lanzamiento importante en la familia DirectX. Trajo muchas características y mejoras importantes a las capacidades gráficas de Windows. En el momento de su lanzamiento, era compatible con Windows 98 , Windows Me , Windows 2000 y Windows XP . A partir de agosto de 2024, sigue siendo compatible con todas las versiones posteriores de Windows por compatibilidad con versiones anteriores.
Una de las características clave introducidas en DirectX 9 fue Shader Model 2.0, que incluía Pixel Shader 2.0 y Vertex Shader 2.0. Estos permitieron una representación de gráficos más compleja y realista. También trajo consigo mejoras de rendimiento muy necesarias a través de mejores capacidades de aceleración de hardware y una mejor utilización de los recursos de la GPU. También introdujo HLSL , que proporcionó una forma más accesible para que los desarrolladores produjeran sombreadores.
DirectX 9.0c fue una actualización del original y se ha modificado continuamente a lo largo de los años, lo que afectó su compatibilidad con sistemas operativos más antiguos. A partir de enero de 2007, Windows 2000 y Windows XP se convirtieron en los sistemas operativos mínimos requeridos. Esto significa que se eliminó oficialmente la compatibilidad con Windows 98 y Windows Me. A partir de agosto de 2024, DirectX 9.0c todavía se actualiza periódicamente.
Windows XP SP2 y versiones más recientes incluyen DirectX 9.0c, [34] pero pueden requerir una instalación redistribuible en tiempo de ejecución de DirectX más reciente para aplicaciones DirectX 9.0c compiladas con el SDK de DirectX 9.0 de febrero de 2005 o más reciente.
DirectX 9 tuvo un impacto significativo en el desarrollo de juegos. Muchos juegos desde mediados de la década de 2000 hasta principios de la década de 2010 se desarrollaron con DirectX 9 y se convirtió en un objetivo estándar para los desarrolladores. Incluso hoy, algunos juegos todavía usan DirectX 9 como una opción para hardware más antiguo o menos potente.
DirectX 10 es una actualización importante de la API de DirectX. Se entrega con Windows Vista (lanzado a fines de 2006) y versiones posteriores y solo está disponible con ellos. Las versiones anteriores de Windows, como Windows XP, no pueden ejecutar aplicaciones exclusivas de DirectX 10. En cambio, los programas que se ejecutan en un sistema Windows XP con hardware DirectX 10 simplemente recurren a la ruta de código de DirectX 9.0c, la última disponible para computadoras con Windows XP. [35]
Los cambios para DirectX 10 fueron extensos. Muchas partes anteriores de la API de DirectX quedaron obsoletas en el último SDK de DirectX y se conservaron solo por compatibilidad: DirectInput quedó obsoleto en favor de XInput , DirectSound quedó obsoleto en favor del sistema Cross-platform Audio Creation Tool (XACT) y, además, perdió la compatibilidad con el audio acelerado por hardware, ya que la pila de audio de Vista reproduce el sonido en software en la CPU. El DPLAY.DLL de DirectPlay también se eliminó y se reemplazó con dplayx.dll; los juegos que dependen de este DLL deben duplicarlo y cambiarle el nombre a dplay.dll.
Para lograr compatibilidad con versiones anteriores, DirectX en Windows Vista contiene varias versiones de Direct3D: [36]
Direct3D 10.1 es una actualización incremental de Direct3D 10.0 que se envió con, y requirió, Windows Vista Service Pack 1 , que fue lanzado en febrero de 2008. [37] Esta versión establece principalmente algunos estándares de calidad de imagen más para los proveedores de gráficos, al tiempo que brinda a los desarrolladores más control sobre la calidad de la imagen. [38] También agrega soporte para matrices de mapas de cubos, modos de fusión separados por MRT, exportación de máscara de cobertura desde un sombreador de píxeles, capacidad de ejecutar sombreador de píxeles por muestra, acceso a búferes de profundidad de múltiples muestras [39] y requiere que la tarjeta de video admita Shader Model 4.1 o superior y operaciones de punto flotante de 32 bits. Direct3D 10.1 aún admite completamente el hardware de Direct3D 10, pero para utilizar todas las nuevas características, se requiere hardware actualizado. [40]
Microsoft presentó DirectX 11 en el evento Gamefest 08 en Seattle. La actualización final de la plataforma se lanzó para Windows Vista el 27 de octubre de 2009, una semana después del lanzamiento inicial de Windows 7 , que se lanzó con Direct3D 11 como estándar base.
Las principales características programadas incluyen soporte GPGPU ( DirectCompute ), y Direct3D 11 con soporte de teselación [41] [42] y soporte multi-threading mejorado para ayudar a los desarrolladores de videojuegos a desarrollar juegos que utilicen mejor los procesadores multi-núcleo . [43] Partes de la nueva API como el manejo de recursos multi-threading pueden ser soportadas en hardware de clase Direct3D 9/10/10.1. La teselación de hardware y Shader Model 5.0 requieren hardware compatible con Direct3D 11. [44] Microsoft ha lanzado desde entonces la Vista previa técnica de Direct3D 11. [45] Direct3D 11 es un superconjunto estricto de Direct3D 10.1 — todas las características de hardware y API de la versión 10.1 se conservan, y las nuevas características se agregan solo cuando es necesario para exponer nueva funcionalidad. Esto ayuda a mantener la compatibilidad con versiones anteriores de DirectX.
Se lanzaron cuatro actualizaciones para DirectX 11:
Microsoft anunció DirectX 12 en GDC el 20 de marzo de 2014 y se lanzó oficialmente junto con Windows 10 el 29 de julio de 2015.
La característica principal destacada de la nueva versión de DirectX fue la introducción de API de programación avanzadas de bajo nivel para Direct3D 12 que pueden reducir la sobrecarga del controlador. Los desarrolladores ahora pueden implementar sus propias listas de comandos y búferes en la GPU, lo que permite una utilización más eficiente de los recursos a través de la computación paralela . El desarrollador principal Max McMullen afirmó que el objetivo principal de Direct3D 12 es lograr "una eficiencia a nivel de consola en teléfonos, tabletas y PC". [55] El lanzamiento de Direct3D 12 viene junto con otras iniciativas para API de gráficos de baja sobrecarga, como Mantle de AMD para tarjetas gráficas AMD, Metal de Apple para iOS y macOS y Vulkan multiplataforma de Khronos Group .
La compatibilidad con múltiples adaptadores estará presente en DirectX 12, lo que permitirá a los desarrolladores utilizar múltiples GPU en un sistema simultáneamente; anteriormente, la compatibilidad con múltiples GPU dependía de implementaciones de proveedores como AMD CrossFireX o NVIDIA SLI . [56] [57] [58] [59]
DirectX 12 es compatible con todas las GPU Nvidia Fermi y posteriores, con los chips basados en GCN de AMD y con las unidades gráficas de los procesadores Intel Haswell y posteriores. [60]
En SIGGRAPH 2014, Intel lanzó una demostración que mostraba un campo de asteroides generado por computadora , en el que se afirmaba que DirectX 12 era entre un 50 y un 70 % más eficiente que DirectX 11 en velocidad de renderizado y consumo de energía de la CPU. [61] [62]
Ashes of the Singularity fue el primer juego disponible públicamente en utilizar DirectX 12. Las pruebas realizadas por Ars Technica en agosto de 2015 revelaron ligeras regresiones de rendimiento en el modo DirectX 12 sobre el modo DirectX 11 para la Nvidia GeForce 980 Ti , mientras que la AMD Radeon R9 290x logró mejoras de rendimiento consistentes de hasta un 70% con DirectX 12, y en algunos escenarios la AMD superó a la más poderosa Nvidia con DirectX 12. Las discrepancias de rendimiento pueden deberse a optimizaciones deficientes del controlador de Nvidia para DirectX 12, o incluso a limitaciones de hardware de la tarjeta que fue optimizada para la ejecución en serie de DirectX 11; sin embargo, la causa exacta sigue sin estar clara. [63]
Las mejoras de rendimiento de DirectX 12 en la Xbox no son tan sustanciales como en la PC. [64]
En marzo de 2018, se anunció DirectX Raytracing (DXR), capaz de realizar trazado de rayos en tiempo real en hardware compatible, [65] y la API DXR se agregó en la actualización de octubre de 2018 de Windows 10.
En 2019 Microsoft anunció la llegada de DirectX 12 a Windows 7, pero solo como complemento para ciertos títulos de juegos. [66]
Microsoft reveló DirectX 12 Ultimate en marzo de 2020. DirectX 12 Ultimate se unificará en una biblioteca común tanto en computadoras con Windows 10 como en Xbox Series X y otras consolas Xbox de novena generación. Entre las nuevas características de Ultimate se incluyen DirectX Raytracing 1.1 , Variable Rate Shading, que brinda a los programadores control sobre el nivel de detalle del sombreado según las opciones de diseño, Mesh Shaders y Sampler Feedback. [67] [68]
El número de versión que informa la herramienta DxDiag de Microsoft (versión 4.09.0000.0900 y posteriores) utiliza el formato x.xx.xxxx.xxxx para los números de versión. Sin embargo, la página MSDN de DirectX y Windows XP afirma que el registro siempre ha estado en el formato x.xx.xx.xxxx. Por lo tanto, cuando la tabla anterior indica una versión como '4.09.00.0904', la herramienta DxDiag de Microsoft puede indicarla como '4.09.0000.0904'. [96]
Varias versiones de Windows han incluido y soportado varias versiones de DirectX, permitiendo que las versiones más nuevas del sistema operativo continúen ejecutando aplicaciones diseñadas para versiones anteriores de DirectX hasta que esas versiones puedan ser eliminadas gradualmente a favor de API, controladores y hardware más nuevos. [97]
Las API como Direct3D y DirectSound necesitan interactuar con el hardware, y lo hacen a través de un controlador de dispositivo . Los fabricantes de hardware tienen que escribir estos controladores para la interfaz del controlador de dispositivo (o DDI) de una versión particular de DirectX, y probar cada pieza individual de hardware para que sean compatibles con DirectX. Algunos dispositivos de hardware solo tienen controladores compatibles con DirectX (en otras palabras, uno debe instalar DirectX para poder usar ese hardware). Las primeras versiones de DirectX incluían una biblioteca actualizada de todos los controladores compatibles con DirectX disponibles en la actualidad. Sin embargo, esta práctica se abandonó a favor del sistema de actualización de controladores basado en la web Windows Update , que permitía a los usuarios descargar solo los controladores relevantes para su hardware, en lugar de la biblioteca completa.
Antes de DirectX 10, el entorno de ejecución de DirectX estaba diseñado para ser compatible con versiones anteriores de controladores más antiguos, lo que significa que las versiones más nuevas de las API estaban diseñadas para interoperar con controladores más antiguos escritos contra el DDI de una versión anterior. El programador de aplicaciones tenía que consultar las capacidades de hardware disponibles utilizando un sistema complejo de "cap bits", cada uno vinculado a una característica de hardware particular. Direct3D 7 y versiones anteriores funcionaban en cualquier versión del DDI, Direct3D 8 requiere un nivel mínimo de DDI de 6 y Direct3D 9 requiere un nivel mínimo de DDI de 7. [98] Sin embargo, el entorno de ejecución de Direct3D 10 en Windows Vista no puede ejecutarse en controladores de hardware más antiguos debido al DDI significativamente actualizado, que requiere un conjunto de características unificado y abandona el uso de "cap bits".
Direct3D 10.1 introduce los " niveles de características " 10_0 y 10_1, que permiten el uso únicamente de las características de hardware definidas en la versión especificada de la API de Direct3D. Direct3D 11 añade el nivel 11_0 y el "nivel 10 9", un subconjunto de la API de Direct3D 10 diseñado para ejecutarse en hardware Direct3D 9, que tiene tres niveles de características (9_1, 9_2 y 9_3) agrupados por capacidades comunes de tarjetas de vídeo de "gama baja", "media" y "gama alta"; el entorno de ejecución utiliza directamente Direct3D 9 DDI proporcionado en todos los controladores WDDM. El nivel de características 11_1 se ha introducido con Direct3D 11.1 .
En 2002, Microsoft lanzó una versión de DirectX compatible con Microsoft .NET Framework , lo que permitió a los programadores aprovechar la funcionalidad de DirectX desde dentro de las aplicaciones .NET utilizando lenguajes compatibles como C++ administrado o el uso del lenguaje de programación C# . Esta API se conocía como " Managed DirectX " (o MDX para abreviar), y afirmaba funcionar al 98% del rendimiento de las API nativas de DirectX subyacentes. En diciembre de 2005, febrero de 2006, abril de 2006 y agosto de 2006, Microsoft lanzó actualizaciones sucesivas de esta biblioteca, que culminaron en una versión beta llamada Managed DirectX 2.0. Si bien Managed DirectX 2.0 consolidó la funcionalidad que anteriormente se había dispersado en varios ensamblajes en un solo ensamblaje, simplificando así las dependencias de este para los desarrolladores de software, el desarrollo de esta versión se ha interrumpido posteriormente y ya no se admite. La biblioteca Managed DirectX 2.0 expiró el 5 de octubre de 2006.
Durante la GDC 2006, Microsoft presentó XNA Framework , una nueva versión administrada de DirectX (similar pero no idéntica a Managed DirectX) que está destinada a ayudar al desarrollo de juegos al facilitar la integración de DirectX, HLSL y otras herramientas en un solo paquete. También admite la ejecución de código administrado en Xbox 360. XNA Game Studio Express RTM se puso a disposición el 11 de diciembre de 2006 como descarga gratuita para Windows XP. A diferencia del entorno de ejecución de DirectX, Managed DirectX , XNA Framework o las API de Xbox 360 (XInput, XACT, etc.) no se han incluido como parte de Windows. Se espera que los desarrolladores redistribuyan los componentes del entorno de ejecución junto con sus juegos o aplicaciones.
Ningún producto de Microsoft, incluidas las últimas versiones de XNA, ofrece compatibilidad con DirectX 10 para .NET Framework.
El otro enfoque para DirectX en lenguajes administrados es utilizar bibliotecas de terceros como:
Existen alternativas a la familia de APIs de DirectX , siendo OpenGL , su sucesor Vulkan , Metal y Mantle los que tienen más características comparables a Direct3D . Ejemplos de otras APIs incluyen SDL , Allegro , OpenMAX , OpenML, OpenAL , OpenCL , FMOD , SFML , etc. Muchas de estas bibliotecas son multiplataforma o tienen bases de código abiertas. También existen implementaciones alternativas que apuntan a proporcionar la misma API, como la de Wine . Además, los desarrolladores de ReactOS están tratando de reimplementar DirectX bajo el nombre "ReactX".
Windows necesita soporte; ... – Cambio de página – Sincronización de espacios en blanco verticales – Mezcla de sonido precisa – Sincronización precisa de eventos de sonido y video – Rendimiento de blting en bruto – Capacidad para configurar el modo gráfico ...
El software de Lion King, por ejemplo, es una aplicación WinToon. ... Al igual que WinToon, este ejemplo utiliza WinG para dibujar en el DIB.
Los objetos multimedia de DirectX han sido reemplazados por las transformaciones de Media Foundation (MFT).