DirectX
Microsoft DirectX es una colección de interfaces de programación de aplicaciones (API) para manejar tareas relacionadas con multimedia, especialmente programación de juegos y video, en plataformas de Microsoft. Originalmente, los nombres de estas API comenzaban 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 API particulares) y pronto se convirtió en el nombre de la colección. Cuando Microsoft más tarde se dispuso a 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. La inicial X se ha mantenido en el nombre de las API diseñadas para Xbox, como XInput y la Herramienta de creación de audio multiplataforma (XACT), mientras que el patrón DirectX se ha continuado para las API de Windows, como Direct2D y DirectWrite.
Direct3D (la API de gráficos 3D dentro de DirectX) se usa ampliamente en el desarrollo de videojuegos para Microsoft Windows y la línea de consolas Xbox. Direct3D también es utilizado por otras aplicaciones de software para tareas de visualización y gráficos, como la ingeniería CAD/CAM. Como Direct3D es el componente de DirectX más publicitado, es común ver los nombres "DirectX" y "Direct3D" usado indistintamente.
El kit de desarrollo de software (SDK) de DirectX consta de bibliotecas de tiempo de ejecución en formato binario redistribuible, junto con la documentación y los encabezados que lo acompañan para su uso en la codificación. Originalmente, los tiempos de ejecución solo 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. Windows 98 y Windows NT 4.0 se enviaron con DirectX, al igual que todas las versiones de Windows lanzadas desde entonces. El SDK está disponible como descarga gratuita. Si bien los tiempos de ejecución son software patentado de código cerrado, se proporciona el código fuente para la mayoría de las muestras de SDK. A partir del lanzamiento de Windows 8 Developer Preview, DirectX SDK se ha integrado en Windows SDK.
Historial de desarrollo
A fines de 1994, Microsoft estaba listo para lanzar Windows 95, su próximo sistema operativo. Un factor importante en el valor que los consumidores le darían 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 tenían de llevar sus juegos de MS-DOS a Windows 95 y encontró que las respuestas eran en su mayoría negativas; Los programadores habían descubierto que el entorno de Windows no proporcionaba las funciones necesarias que estaban disponibles en MS-DOS mediante las rutinas del BIOS o el acceso directo al hardware. También hubo fuertes temores de compatibilidad; un caso notable de esto fue del Libro de cuentos animados de Disney: El Rey León, que se basó en la interfaz de programación WinG. Debido a numerosos controladores de gráficos incompatibles de las nuevas computadoras Compaq que no se probaron con la interfaz WinG que venía incluida con el juego, fallaba con tanta frecuencia en muchos sistemas de escritorio que los padres habían inundado las líneas de ayuda telefónica de Disney.
St. John reconoció que las resistencias para el desarrollo de juegos en Windows serían una limitación y reclutó a dos ingenieros adicionales, Craig Eisler y Eric Engstrom, para desarrollar una mejor solución para lograr que más programadores desarrollen juegos para Windows. El proyecto recibió el nombre en código de Proyecto Manhattan, ya que en relación con el proyecto de la Segunda Guerra Mundial del mismo nombre, la idea era desplazar las consolas de videojuegos desarrolladas en Japón con computadoras personales que ejecutan el sistema operativo de Microsoft. Inicialmente había usado el símbolo de radiación como su logotipo, pero Microsoft le pidió al equipo que cambiara el logotipo. La gerencia no estuvo de acuerdo con el proyecto porque ya estaban descartando Windows como plataforma de juegos, pero los tres se comprometieron con el desarrollo de este proyecto. Su naturaleza rebelde llevó a Brad Silverberg, vicepresidente senior de productos de oficina de Microsoft, a nombrar al trío 'Beastie Boys'.
La mayor parte del trabajo de los tres se realizó entre otros proyectos asignados a partir de finales de 1994. En cuatro meses y con aportes de varios fabricantes de hardware, el equipo había desarrollado el primer conjunto de interfaces de programación de aplicaciones (API) que presentado en la Game Developers Conference de 1995. El SDK incluía bibliotecas que implementaban DirectDraw para gráficos de mapa de bits, DirectSound para audio y DirectPlay para la comunicación entre jugadores a través de una red. Además, se documentó por primera vez como DirectInput una API de joystick extendida que ya estaba presente en Windows 95, 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 formaba parte del SDK. El "Directo" parte de la biblioteca se llamó 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). Aunque el equipo lo había llamado "Game SDK" (kit de desarrollo de software), el nombre "DirectX" vino de un periodista que se había burlado del esquema de nombres de las diversas bibliotecas. El equipo optó por continuar usando ese esquema de nombres y llamar al proyecto DirectX.
La primera versión de DirectX se lanzó en septiembre de 1995 como SDK de juegos de Windows. Su componente DirectDraw fue el reemplazo de Win32 para las API DCI y WinG para Windows 3.1. DirectX permitió que todas las versiones de Microsoft Windows, comenzando con Windows 95, incorporaran multimedia de alto rendimiento. Eisler escribió sobre el frenesí de construir DirectX 1 a 5 en su blog.
Para atraer a más desarrolladores a DirectX, Microsoft se acercó a John Carmack de id Software y le ofreció migrar Doom y Doom 2 de MS-DOS a DirectX. de forma gratuita, con id conservando todos los derechos de publicación del juego. Carmack estuvo de acuerdo y Gabe Newell de Microsoft dirigió el proyecto de portabilidad. El primer juego se lanzó como Doom 95 en agosto de 1996, el primer juego DirectX publicado. Microsoft promocionó fuertemente el juego con Bill Gates apareciendo en los anuncios del título.
DirectX 2.0 se convirtió en un componente de Windows con los lanzamientos de Windows 95 OSR2 y Windows NT 4.0 a mediados de 1996. Dado que Windows 95 todavía era nuevo y se habían lanzado pocos juegos para él, Microsoft se dedicó a una fuerte 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 evento elaborado en la Conferencia de Desarrolladores de Juegos de Computadora de 1996 que el desarrollador de juegos Jay Barnson describió como un tema romano, que incluía leones reales, togas y algo parecido a un carnaval interior. Fue en este evento que Microsoft presentó por primera vez Direct3D y demostró que MechWarrior 2 multijugador se jugaba a través de Internet.
El equipo de DirectX se enfrentó a la desafiante tarea de probar cada versión de DirectX en una variedad de hardware y software de computadora. Se probó 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 agregado OpenGL a su plataforma Windows NT. OpenGL había sido diseñado como una interfaz de software independiente del sistema de ventanas 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 usarse para imágenes y gráficos 2D y estaba controlado por la Junta de Revisión Arquitectónica (ARB), que incluía a Microsoft. Direct3D estaba destinado a ser una alternativa controlada por Microsoft a OpenGL, centrada inicialmente en el uso de juegos. A medida que crecían los juegos en 3D, los desarrolladores de juegos estaban descubriendo que OpenGL podía usarse de manera efectiva para el desarrollo de juegos. En ese momento, una "batalla" comenzó entre los partidarios de OpenGL multiplataforma y Direct3D solo para Windows. Por cierto, OpenGL fue apoyado en Microsoft por el equipo de DirectX. Si un desarrollador elige usar la API de gráficos 3D de OpenGL en juegos de computadora, las otras API de DirectX además de Direct3D a menudo se combinan con OpenGL porque OpenGL no incluye todas las funciones de DirectX (como sonido o compatibilidad con joystick).
En una versión específica de la consola, se utilizó DirectX como base para la API de la consola Xbox, Xbox 360 y Xbox One de Microsoft. La API se desarrolló conjuntamente entre Microsoft y Nvidia, que desarrolló el hardware de gráficos personalizado utilizado por la Xbox original. La API de Xbox era similar a DirectX versión 8.1, pero no se puede actualizar como otras tecnologías de consola. La Xbox tenía el nombre en código de DirectXbox, pero se acortó a Xbox por su nombre comercial.
En 2002, Microsoft lanzó DirectX 9 con soporte para el uso de programas de sombreado mucho más largos que antes con pixel y vertex shader versión 2.0. Microsoft ha continuado actualizando la suite DirectX desde entonces, presentando 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ó a Microsoft Platform SDK en su lugar.
Se ha confirmado que DirectX está presente en Windows Phone 8 de Microsoft.
El trazado de rayos en tiempo real se anunció como DXR en 2018. El mismo año también se agregó compatibilidad para compilar HLSL a SPIR-V en DirectX Shader Compiler.
Logotipos
El logotipo original se parecía a un símbolo de advertencia de radiación deformado. De manera controvertida, el nombre original del proyecto DirectX era "Proyecto Manhattan", una referencia a la iniciativa de armas nucleares de EE. UU. Alex St. John, jefe de evangelismo de Microsoft DirectX en ese momento, afirma que la connotación del resultado final del Proyecto Manhattan (el bombardeo nuclear de Japón) es intencional, y que DirectX y su proyecto hermano, Xbox (que comparte un logotipo similar), estaban destinados a desplazar a los creadores de videojuegos japoneses de su dominio de la industria de los videojuegos. Sin embargo, Microsoft niega públicamente esta cuenta y, en cambio, afirma que el logotipo es simplemente un diseño artístico.
Componentes
DirectX se compone de varias API:
- Direct3D (D3D): API de renderización 3D en tiempo real
- DXGI: Enumerate adaptadores y monitores y gestiona cadenas de intercambio para Direct3D 10 y posterior.
- Direct2D: API de gráficos 2D
- DirectWrite: API de renderización de texto
- DirectCompute: API para computación de uso general en unidades de procesamiento de gráficos
- Diagnósticos DirectX (DxDiag): Una herramienta para diagnosticar y generar informes sobre componentes relacionados con DirectX, como audio, vídeo y controladores de entrada
- XACT3: API de audio de alto nivel
- XAudio2: API de audio de bajo nivel
- DirectX Raytracing (DXR): API de rayos en tiempo real
- DirectStorage: Archivo orientado a GPU I/O API
- DirectML: aprendizaje automático acelerado por GPU y API de inteligencia artificial
Microsoft ha desaprobado los siguientes componentes:
- DirectX Media: Consistas de:
- DirectAnimación para animación web 2D/3D, DirectShow para reproducción multimedia y medios de transmisión
- DirectX Media Objetos: Soporte para la transmisión de objetos como encoders, decodificadores y efectos (Deprecated in favour of Media Foundation Transforms; MFTs)
- DirectX Transform para interactividad web, y Direct3D Modo Retenido para gráficos 3D de alto nivel
- Direct X plugins para procesamiento de señales de audio
- Aceleración de vídeo DirectX para la reproducción de vídeo acelerada (Deprecated in favour of Media Foundation)
- DirectDraw: 2D graphics API (Deprecated in favour of Direct2D)
- DirectInput: Input API for interfacing with keyboards, ratones, joysticks y controladores de juego (Deprecated after version 8 in favour of XInput for Xbox 360 controladors or standard WM_INPUT window message processing for keyboard and mouse input)
- DirectPlay: Network API for communication over a local-area or wide-area network (Deprecated after version 8 in favour of Games for Windows Live and Xbox Live)
- DirectSound: Audio API (Deprecated since DirectX 8 en favor de XAudio2 y XACT3)
- DirectSound3D (DS3D): API de sonidos 3D (Deprecated since DirectX 8 en favor de XAudio2 y XACT3)
- DirectMusic: Componentes para jugar bandas sonoras autorizadas en DirectMusic Producer (Deprecated since DirectX 8 en favor de XAudio2 y XACT3)
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í mismos, los objetos administrados se han creado sobre algunas partes de DirectX, como Managed Direct3D y la biblioteca de gráficos XNA sobre Direct3D 9.
Microsoft distribuye una herramienta de depuración para DirectX llamada "PIX".
Versiones
DirectX 9
DirectX 9 se lanzó en 2002 para Windows 98, Me y XP, y actualmente es compatible con todas las versiones posteriores. Microsoft continúa realizando cambios en DirectX 9.0c, lo que hace que se elimine el soporte para algunos de los sistemas operativos antes mencionados. A partir de enero de 2007, se requiere Windows 2000 o XP. Esto también introdujo Shader Model 2.0 que contiene Pixel Shader 2.0 y Vertex Shader 2.0. Windows XP SP2 y posteriores incluyen DirectX 9.0c, pero pueden requerir una instalación redistribuible de tiempo de ejecución de DirectX más reciente para aplicaciones DirectX 9.0c compiladas con DirectX 9.0 SDK de febrero de 2005 o posterior.
DirectX 10
DirectX 10, una importante actualización de la API de DirectX, se incluye y solo está disponible con Windows Vista (lanzado a finales de 2006) y versiones posteriores. Las versiones anteriores de Windows, como Windows XP, no pueden ejecutar aplicaciones exclusivas de DirectX 10. Más bien, los programas que se ejecutan en un sistema Windows XP con hardware DirectX 10 simplemente recurren a la ruta del código DirectX 9.0c, la última disponible para computadoras con Windows XP.
Los cambios para DirectX 10 fueron extensos. Muchas partes anteriores de la API de DirectX quedaron en desuso en el SDK de DirectX más reciente y se conservan solo por compatibilidad: DirectInput quedó en desuso en favor de XInput, DirectSound quedó en desuso en favor del sistema de herramienta de creación de audio multiplataforma (XACT) y, además, perdió soporte para audio acelerado por hardware, ya que la pila de audio de Vista reproduce el sonido en el software de la CPU. DirectPlay DPLAY.DLL también se eliminó y se reemplazó con dplayx.dll; los juegos que dependen de esta DLL deben duplicarla y cambiarle el nombre a dplay.dll.
Para lograr la compatibilidad con versiones anteriores, DirectX en Windows Vista contiene varias versiones de Direct3D:
- Direct3D 9: emula el comportamiento Direct3D 9 como estaba en Windows XP. Los detalles y ventajas del Modelo de Controlador de Pantalla de Windows de Vista están ocultos de la aplicación si los controladores WDDM están instalados. Esta es la única API disponible si sólo hay controladores gráficos XP (XDDM) instalados, después de una actualización a Vista por ejemplo.
- Direct3D 9Ex (conocido internamente durante el desarrollo de Windows Vista como 9.0L o 9.L): permite el pleno acceso a las nuevas capacidades de WDDM (si se instalan los controladores WDDM) manteniendo la compatibilidad con las aplicaciones Direct3D existentes. La interfaz de usuario de Windows Aero se basa en D3D 9Ex.
- Direct3D 10: Diseñado alrededor del nuevo modelo de controlador en Windows Vista y con una serie de mejoras en la capacidad de renderización y flexibilidad, incluyendo Shader Modelo 4.
Direct3D 10.1 es una actualización incremental de Direct3D 10.0 que se envió con Windows Vista Service Pack 1 y lo requirió, que se lanzó en febrero de 2008. control sobre la calidad de la imagen. También agrega soporte para matrices de mapas de cubos, modos de mezcla separados por MRT, exportación de máscara de cobertura desde un sombreador de píxeles, capacidad para ejecutar un sombreador de píxeles por muestra, acceso a búferes de profundidad de muestras múltiples y requiere que la tarjeta de video sea compatible con Shader Model 4.1 o Operaciones superiores y de coma flotante de 32 bits. Direct3D 10.1 sigue siendo totalmente compatible con el hardware de Direct3D 10, pero para utilizar todas las funciones nuevas, se requiere hardware actualizado.
DirectX 11
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.
Características principales programadas, incluida la compatibilidad con GPGPU (DirectCompute) y Direct3D 11 con compatibilidad con teselado y compatibilidad mejorada con subprocesos múltiples para ayudar a los desarrolladores de videojuegos a desarrollar juegos que utilicen mejor los procesadores multinúcleo. Partes de la nueva API, como el manejo de recursos de subprocesos múltiples, se pueden admitir 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. Desde entonces, Microsoft ha lanzado Direct3D 11 Technical Preview. Direct3D 11 es un superconjunto estricto de Direct3D 10.1: se conservan todas las funciones de API y hardware de la versión 10.1, y se agregan nuevas funciones solo cuando es necesario para exponer la nueva funcionalidad. Esto ayuda a mantener la compatibilidad con versiones anteriores de DirectX.
Se lanzaron cuatro actualizaciones para DirectX 11:
- DirectX 11.1 está incluido en Windows 8. Apoya el WDDM 1.2 para aumentar el rendimiento, presenta una mejor integración de Direct2D (ahora en la versión 1.1), Direct3D y DirectCompute, e incluye bibliotecas DirectXMath, XAudio2, y XInput del marco XNA. También cuenta con soporte estereoscópico 3D para juegos y vídeo. DirectX 11.1 también fue parcialmente backported a Windows 7, a través de la actualización de la plataforma Windows 7.
- DirectX 11.2 está incluido en Windows 8.1 (incluyendo la versión RT) y Windows Server 2012 R2. Añadió algunas características nuevas a Direct2D como realizaciones de geometría. También añadió la composición de la cadena de intercambio, que permite que algunos elementos de la escena se hagan en resoluciones más bajas y luego se compositieron mediante superposición de hardware con otras partes hechas en mayor resolución.
- DirectX 11.X es un superset de DirectX 11.2 que funciona en Xbox One. En realidad incluye algunas características, como paquetes de sorteo, que fueron anunciados más tarde como parte de DirectX 12.
- DirectX 11.3 fue anunciado junto con DirectX 12 en GDC y publicado en 2015. Está destinado a complementar DirectX 12 como alternativa de alto nivel. Está incluido con Windows 10.
DirectX 12
Microsoft anunció DirectX 12 en la GDC el 20 de marzo de 2014 y se lanzó oficialmente junto con Windows 10 el 29 de julio de 2015.
La principal característica destacada de la nueva versión de DirectX fue la introducción de API de programación avanzada 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 de recursos más eficiente a través del cómputo paralelo. El desarrollador principal Max McMullen afirmó que el objetivo principal de Direct3D 12 es lograr la "eficiencia a nivel de consola en teléfonos, tabletas y PC". El lanzamiento de Direct3D 12 viene junto con otras iniciativas para API de gráficos de bajo costo, 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 se incluirá en DirectX 12, lo que permitirá a los desarrolladores utilizar varias GPU en un sistema simultáneamente; La compatibilidad con varias GPU dependía anteriormente de las implementaciones de los proveedores, como AMD CrossFireX o NVIDIA SLI.
- Implícita Multiadapter soporte trabajará de manera similar a versiones anteriores de Direct X donde los marcos se renderizan alternativamente a través de GPUs conectadas de poder de cálculo similar.
- Explicit Multiadapter proporcionará dos patrones de API distintos a los desarrolladores. GPUs vinculadas permitirá Direct X para ver las tarjetas gráficas en SLI o CrossFireX como una única GPU y utilizar los recursos combinados; GPUs sin conexión permitirá que GPU de diferentes proveedores sean utilizados por DirectX, como complementar la GPU dedicada con la GPU integrada en la CPU, o combinar tarjetas AMD y NVIDIA. Sin embargo, las complejas configuraciones multi-GPU mixtas requieren un apoyo mucho más atento para los desarrolladores.
DirectX 12 es compatible con todas las GPU Fermi y Nvidia posteriores, con chips basados en GCN de AMD y con Haswell de Intel y procesadores posteriores. unidades gráficas.
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 cuanto a velocidad de representación y consumo de energía de la CPU.
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 DirectX 12 sobre el modo DirectX 11 para la Nvidia GeForce 980 Ti, mientras que la AMD Radeon R9 290x logró mejoras de rendimiento constantes de hasta un 70 % con DirectX 12 y, en algunos escenarios, AMD superó a la Nvidia más poderosa con DirectX 12. Las discrepancias en el rendimiento pueden deberse a una mala calidad de Nvidia optimizaciones de controladores para DirectX 12, o incluso limitaciones de hardware de la tarjeta que se optimizó para la ejecución en serie de DirectX 11; sin embargo, la causa exacta sigue sin estar clara.
Las mejoras de rendimiento de DirectX 12 en Xbox no son tan sustanciales como en PC.
En marzo de 2018, se anunció DirectX Raytracing (DXR), capaz de realizar un seguimiento de rayos en tiempo real en hardware compatible, y se agregó la API DXR en la actualización de Windows 10 de octubre de 2018.
En 2019, Microsoft anunció la llegada de DirectX 12 a Windows 7, pero solo como complemento para ciertos títulos de juegos.
DirectX 12 último
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 funciones 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.
Historial de versiones
1995 | DirectX 1 |
---|---|
1996 | DirectX 2 |
DirectX 3 | |
1997 | DirectX 5 |
1998 | DirectX 6 |
1999 | DirectX 7 |
2000 | DirectX 8 |
2001 | |
2002 | DirectX 9 |
2003 | |
2004 | |
2005 | |
2006 | DirectX 10 |
2007 | |
2008 | |
2009 | DirectX 11 |
2010 | |
2011 | |
2012 | |
2013 | |
2014 | |
2015 | DirectX 12 |
2016 | |
2017 | |
2018 | |
2019 | |
2020 | DirectX 12 Ultimate |
Versión | Fecha de lanzamiento | Notas | ||
---|---|---|---|---|
Major | Menores | Número | ||
1 | 1.0 | 4.02.0095 | 30 de septiembre de 1995 | Inicialmente lanzado como Windows Game SDK, reemplazando WinG para Windows 95 en adelante |
2 | 2.0 | 1996 | Se envió sólo con unas pocas solicitudes de terceros | |
2.0a | 4.03.00.1096 | 5 de junio de 1996 | Windows 95 OSR2 y Windows NT 4.0 exclusiva | |
3 | 3.0 | 4.04.00.0068 | 15 de septiembre de 1996 | |
4.04.00.0069 | 1996 | Paquete posterior de DirectX 3.0 incluido Direct3D 4.04.00.0069 | ||
3.0a | 4.04.00.0070 | Diciembre de 1996 | Windows NT 4.0 SP3 (y arriba) Tercera versión 3.0 y última versión compatible para Windows NT 4.0 | |
3.0b | 4.04.00.0070 | Diciembre de 1996 | Esta fue una actualización muy menor a 3.0a que solucionó un problema cosmético con la versión japonesa de Windows 95 | |
4 | 4.0 | Nunca salí | DirectX 4 nunca fue liberado. Raymond Chen de Microsoft explicó en su libro, La vieja nueva cosa, que después de la liberación DirectX 3, Microsoft comenzó a desarrollar versiones 4 y 5 al mismo tiempo. La versión 4 debe ser una versión a corto plazo con características pequeñas, mientras que la versión 5 sería una versión más sustancial. La falta de interés de los desarrolladores del juego en las características indicadas para DirectX 4 resultó en que se estaba archivando, y la gran cantidad de documentos que ya distinguieron las dos nuevas versiones dio lugar a que Microsoft eligiera no reutilizar la versión 4 para describir las características previstas para la versión 5. | |
5 | 5.0 | 4.05.00.0155 (RC55) | 4 de agosto de 1997 | Disponible como beta para Windows 2000 que se instalaría en Windows NT 4.0 |
5.2 | 4.05.01.1600 (RC00) | 5 de mayo de 1998 | DirectX 5.2 versión para Windows 95 | |
4.05.01.1998 (RC0) | 25 de junio de 1998 | Windows 98 exclusiva | ||
6 | 6.0 | 4.06.00.0318 (RC3) | 7 de agosto de 1998 | Windows CE como implementado en Dreamcast y otros dispositivos |
6.1 | 4.06.02.0436 (RC0) | 3 de febrero de 1999 | ||
6.1a | 4.06.03.0518 (RC0) | 5 de mayo de 1999 | Ventanas 98 Segunda Edición exclusiva. Esta es la última versión que se ejecuta en 486 o más CPU. | |
7 | 7.0 | 4.07.00.0700 (RC1) | 22 de septiembre de 1999 | |
4.07.00.0700 | 17 de febrero de 2000 | Windows 2000 exclusiva | ||
7.0a | 17 de diciembre de 1999 | Publicado sólo para Windows 95 a 98 | ||
4.07.00.0716 (RC0) | 8 de marzo de 2000 | |||
4.07.00.0716 (RC1) | 2000 | |||
7.1 | 4.07.01.3000 (RC1) | 14 de septiembre de 2000 | Windows Soy exclusiva. Última versión para tener soporte de renderización de software RGB incorporado | |
8 | 8.0 | 4.08.00.0400 (RC10) | 10 de noviembre de 2000 | |
8.0a | 4.08.00.0400 (RC14) | 24 de enero de 2001 | Segunda versión 8.0, última versión soportada para Windows 95 y última versión para tener soporte de renderización de software en dxdiag. exe | |
8.1 | 4.08.01.0810 | 25 de octubre de 2001 | Windows XP, Windows XP SP1, Windows Server 2003 y Xbox exclusiva | |
4.08.01.0881 (RC7) | 8 de noviembre de 2001 | Esta versión es para los sistemas operativos de nivel inferior (Windows 98, Windows Me y Windows 2000) | ||
8.1a | 4.08.01.0901 (RC?) | 2002 | Esta versión incluye una actualización a Direct3D (D3d8.dll) | |
8.1b | 4.08.01.0901 (RC7) | 25 de junio de 2002 | Esta actualización incluye una solución para DirectShow en Windows 2000 (Quartz.dll) | |
8.2 | 4.08.02.0134 (RC0) | 2002 | Igual que el DirectX 8.1b pero incluye DirectPlay 8.2 | |
9 | 9.0 | 4.09.00.0900 (RC4) | 19 de diciembre de 2002 | Se publicaron actualizaciones periódicas híbridas de 32 bits/64 bits para DirectX 9, a partir de 4.09.00.0904 (RC0 para DX 9.0c) en octubre de 2004, publicadas bimestralmente hasta agosto de 2007, y trimestralmente después. La última actualización periódica fue publicada en junio de 2010 |
9.0a | 4.09.00.0901 (RC6) | 26 de marzo de 2003 | ||
9.0b | 4.09.00.0902 (RC2) | 13 de agosto de 2003 | ||
9.0c | 22 de julio de 2004 | Primera versión 9.0c y última versión compatible para Windows 98 | ||
4.09.00.0903 | Windows XP SP2 exclusiva | |||
4.09.00.0904 (RC0) | 4 de agosto de 2004 | |||
7 de abril de 2006 | Tercera versión 9.0c y última versión compatible para Windows Me | |||
8 de diciembre de 2006 | Cuarta versión 9.0c y última versión compatible con Windows 98 Second Edition | |||
4.09.00.0904 | 6 de agosto de 2004 / 21 de abril de 2008* | Xbox 360, Windows XP SP2, SP3*, Windows Server 2003 SP1 y Windows Server 2003 R2 | ||
5 de febrero de 2010 | Última versión compatible para Windows 2000 | |||
7 de junio de 2010 | Versión 9.0c final y última versión compatible para Windows XP | |||
10 | 10 | 6.00.6000.16386 | 30 de noviembre de 2006 | exclusiva de Windows Vista |
10.1 | 6.00.6001.18000 | 4 de febrero de 2008 | Windows Vista SP1, Windows Server 2008 Incluye Direct3D 10.1 | |
6.00.6002.18005 | 28 de abril de 2009 | Windows Vista SP2, Windows Server 2008 SP2 Incluye Direct3D 10.1 | ||
11 | 11 | 6.01.7600.16385 | 22 de octubre de 2009 | Windows 7, Windows Server 2008 R2 |
6.00.6002.18107 | 27 de octubre de 2009 | Windows Vista SP2 y Windows Server 2008 SP2, a través de la actualización de plataforma para Windows Vista y Windows Server 2008 | ||
6.01.7601.17514 | 16 de febrero de 2011 | Windows 7 SP1, Windows Server 2008 R2 SP1 | ||
11.1 | 6.02.9200.16384 | Agosto 1, 2012 | Windows 7 SP1 (partialmente), Windows 8, Windows RT, Windows Server 2012 | |
11.2 | 6.03.9600.16384 | 18 de octubre de 2013 | Windows 8.1, Windows RT, Windows Server 2012 R2, Xbox Uno | |
12 | 12 | 10.00.10240.16384 | 29 de julio de 2015 | Windows 10, Xbox Uno |
10.00.15063.0000 | 20 de marzo de 2017 | Windows 10, Probando y programable MSAA de profundidad | ||
10.00.17763.0000 | 20 de noviembre de 2019 | Direct3D 12 sólo para Windows 7 SP1, a través de un paquete de código fuente dedicado para desarrolladores de aplicaciones | ||
10.00.17763.0001 | Octubre 2, 2018 | Soporte de Raytracing de Windows 10, DirectX | ||
10.00.18362.0116 | 19 de mayo de 2019 | Soporte para Windows 10, Variable Rate Shading (VRS) añadido | ||
10.00.19041.0928 | 10 de noviembre de 2020 | Windows 10, Xbox Serie X, Ultimate | ||
10.00.22000.1000 | 5 de octubre, 2021 | Windows 11, Añadido el cambio de tasa de actualización nativa y mejores capacidades gráficas para Windows Subsistema para Linux |
El número de versión según lo informado por la herramienta DxDiag de Microsoft (versión 4.09.0000.0900 y superior) 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 tenido el formato x.xx.xx.xxxx. Por lo tanto, cuando la tabla anterior muestra una versión como '4.09.00.0904' La herramienta DxDiag de Microsoft puede tenerlo como '4.09.0000.0904'.
Compatibilidad
Varios lanzamientos de Windows han incluido y son compatibles con varias versiones de DirectX, lo que permite 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 eliminarse gradualmente a favor de nuevas API, controladores y hardware.
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 una interfaz de controlador de dispositivo (o DDI) de una versión de DirectX en particular, 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 usar ese hardware). Las primeras versiones de DirectX incluían una biblioteca actualizada de todos los controladores compatibles con DirectX actualmente disponibles. Sin embargo, esta práctica se detuvo a favor del sistema de actualización de controladores Windows Update basado en la web, 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 tiempo de ejecución de DirectX estaba diseñado para ser compatible con versiones anteriores con 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 una versión anterior. DDI. El programador de aplicaciones tuvo que consultar las capacidades de hardware disponibles utilizando un sistema complejo de "bits de límite" cada uno vinculado a una característica de hardware en particular. Direct3D 7 y versiones anteriores funcionarían en cualquier versión de DDI, Direct3D 8 requiere un nivel mínimo de DDI de 6 y Direct3D 9 requiere un nivel mínimo de DDI de 7. Sin embargo, el tiempo de ejecución de Direct3D 10 en Windows Vista no puede ejecutarse en controladores de hardware más antiguos debido a la DDI significativamente actualizada, que requiere un conjunto de funciones unificadas y abandona el uso de "bits de límite".
Direct3D 10.1 presenta "niveles de funciones" 10_0 y 10_1, que permiten el uso de solo las funciones de hardware definidas en la versión especificada de la API de Direct3D. Direct3D 11 agrega el nivel 11_0 y "10 Nivel 9" - un subconjunto de la API 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 "bajo", "medio" y "gama alta" tarjetas de video; el tiempo de ejecución utiliza directamente Direct3D 9 DDI proporcionado en todos los controladores WDDM. El nivel de función 11_1 se introdujo con Direct3D 11.1.
Marco.NET
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 usando lenguajes compatibles como C++ administrado o el uso del lenguaje de programación C#. Esta API se conocía como "DirectX administrado" (o MDX para abreviar), y afirmó operar al 98% del rendimiento de las API de DirectX nativas subyacentes. En diciembre de 2005, febrero de 2006, abril de 2006 y agosto de 2006, Microsoft lanzó sucesivas actualizaciones 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 disperso en varios ensamblajes en un solo ensamblaje, simplificando así las dependencias para los desarrolladores de software, el desarrollo de esta versión se suspendió posteriormente y ya no es compatible. 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 pretende ayudar al desarrollo de juegos al facilitar la integración de DirectX, HLSL y otras herramientas en un paquete. También admite la ejecución de código administrado en Xbox 360. XNA Game Studio Express RTM estuvo disponible el 11 de diciembre de 2006 como descarga gratuita para Windows XP. A diferencia del tiempo 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 de tiempo de ejecución junto con sus juegos o aplicaciones.
Ningún producto de Microsoft, incluidas las versiones más recientes de XNA, ofrece compatibilidad con DirectX 10 para.NET Framework.
El otro enfoque para DirectX en lenguajes administrados es usar bibliotecas de terceros como:
- SlimDX, una biblioteca de código abierto para la programación DirectX en el. Marco NET
- SharpDX, que es un proyecto de código abierto que ofrece la API DirectX completa para. NET en todas las plataformas de Windows, permitiendo el desarrollo de juego de alto rendimiento, renderizado de gráficos 2D y 3D, así como aplicaciones de sonido en tiempo real
- DirectShow.NET para la DirectShow. Mostrar subconjunto
- Windows API CodePack para. NET Framework, que es una biblioteca de código abierto de Microsoft.
Alternativas
Hay alternativas a la familia DirectX de API, con OpenGL, su sucesor Vulkan, Metal y Mantle que tienen la mayoría de las características comparables a Direct3D. Los ejemplos de otras API 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 tienen como objetivo proporcionar la misma API, como la de Wine. Además, los desarrolladores de ReactOS están intentando volver a implementar DirectX con el nombre "ReactX".
Contenido relacionado
Espacio de usuario y espacio del kernel
Matriz en fase
Normalización de base de datos