Articulo de referencia

DirectX

{{cite web\n | url = http://www.gamesurge.com/dreamcast/technical_pages/directx.shtml\n | title = Dreamcast Technical Pages\n | date = June 1999\n}} [[Xbox]], [[Xbox 360]], [[Xb...

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 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 una abreviatura de todas estas API (la X representaba los nombres específicos de las API) y pronto se convirtió en el nombre de la colección. Cuando Microsoft se propuso desarrollar una consola de videojuegos , 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 mantenido en la denominación 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 de DirectX) se utiliza ampliamente en el desarrollo de videojuegos para Microsoft Windows y la línea de consolas Xbox . También se emplea en otras aplicaciones de software para tareas de visualización y gráficos, como la ingeniería CAD/CAM. Dado que Direct3D es el componente más conocido de DirectX, es común ver los nombres "DirectX" y "Direct3D" usados ​​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 correspondientes para su uso en la programación. Originalmente, los tiempos de ejecución solo se instalaban mediante juegos o explícitamente por el usuario. Windows 95 no se lanzó con DirectX, pero DirectX se incluyó en Windows 95 OEM Service Release 2. [ 4 ] Windows 98 y Windows NT 4.0 se lanzaron con DirectX, al igual que todas las versiones de Windows lanzadas desde entonces. El SDK está disponible para su descarga gratuita. Si bien los tiempos de ejecución son software propietario de código cerrado, se proporciona el código fuente para la mayoría de los ejemplos del SDK. A partir del lanzamiento de Windows 8 Developer Preview, el SDK de DirectX se ha integrado en el SDK de Windows. [ 5 ]

Historia del desarrollo

A finales de 1994, Microsoft estaba lista para lanzar Windows 95 , su siguiente sistema operativo . Un factor importante en su valor para los consumidores eran los programas que podrían ejecutarse en él. Alex St. John, empleado de Microsoft , había estado conversando con varios desarrolladores de juegos preguntándoles qué tan probable sería que llevaran sus juegos de MS-DOS a Windows 95, y encontró respuestas mayoritariamente negativas, ya que los programadores habían descubierto que el entorno de Windows no proporcionaba las características necesarias que estaban disponibles en MS-DOS mediante rutinas de BIOS o acceso directo al hardware. [ 6 ] También había fuertes temores de compatibilidad; un caso notable de esto fue el de Disney's Animated Storybook: The Lion King, que se basaba en la interfaz de programación WinG . [ 7 ] Debido a los numerosos controladores gráficos incompatibles de las nuevas computadoras Compaq que no se habían probado con la interfaz WinG que venía incluida con el juego, este fallaba con tanta frecuencia en muchos sistemas de escritorio que los padres saturaron las líneas de ayuda telefónica de Disney . [ 8 ] [ 9 ]

Otro empleado de Microsoft, Craig Eisler, se había unido al equipo multimedia de Windows 95 para trabajar en tecnología de juegos. [ 10 ] Al enterarse por St. John de que la tecnología de Microsoft no estaba teniendo buena acogida entre los desarrolladores, Eisler se propuso crear un nuevo conjunto de API y un modelo de controlador que permitiera a los desarrolladores acceder a las capacidades nativas del hardware gráfico y diera a las empresas de hardware gráfico la capacidad de innovar de maneras que los desarrolladores pudieran usar. [ 11 ] Necesitando apoyo para la gestión del programa, Eisler reclutó a Eric Engstrom , y juntos obtuvieron 11 patentes por su trabajo en DirectX. [ 12 ] El proyecto recibió el nombre en clave 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 con ordenadores personales que ejecutaran el sistema operativo de Microsoft. [ 8 ] Inicialmente había usado el símbolo de radiación como su logotipo, pero Microsoft pidió al equipo que lo cambiara. [ 8 ] La gerencia no aprobó el proyecto, ya que ya descartaban Windows como plataforma de juegos, pero los tres se comprometieron con el desarrollo de este proyecto. [ 9 ] Su naturaleza rebelde llevó a Brad Silverberg , vicepresidente sénior de productos de oficina de Microsoft, a llamar al trío los "Beastie Boys". [ 13 ]

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 la colaboración de varios fabricantes de hardware, el equipo desarrolló 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, [ 14 ] DirectSound para audio, [ 15 ] y DirectPlay para la comunicación entre jugadores a través de una red. [ 16 ] Además, una API de joystick extendida que ya estaba presente en Windows 95 se documentó por primera vez como DirectInput, [ 17 ] 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. [ 18 ] La parte "Direct" de la biblioteca recibió ese nombre porque estas rutinas eludían  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). [ 19 ] Aunque el equipo lo había llamado "Game SDK" ( kit de desarrollo de software ), el nombre "DirectX" provino de un periodista que se había burlado del esquema de nombres de las distintas bibliotecas. El equipo optó por continuar usando ese esquema de nombres y llamar al proyecto DirectX. [ 8 ]

La primera versión de DirectX se lanzó en septiembre de 1995 como el SDK de juegos de Windows. Su componente DirectDraw fue el reemplazo de Win32 para las API DCI [ 20 ] y WinG para Windows 3.1 . [ 21 ] DirectX permitió que todas las versiones de Microsoft Windows, a partir de Windows 95, incorporaran multimedia de alto rendimiento. Eisler escribió sobre el frenesí por compilar DirectX 1 a 5 en su blog. [ 22 ]

Para conseguir más desarrolladores para DirectX, Microsoft contactó con John Carmack de id Software y le ofreció portar Doom y Doom 2 de MS-DOS a DirectX, de forma gratuita, conservando id todos los derechos de publicación del juego. Carmack aceptó, y Gabe Newell de Microsoft lideró el proyecto de portabilidad. El primer juego se lanzó como Doom 95 en agosto de 1996, siendo el primer juego publicado para DirectX. Microsoft promocionó el juego intensamente, con Bill Gates apareciendo en los anuncios del título. [ 8 ]

DirectX 2.0 se convirtió en un componente integrado de Windows con los lanzamientos de Windows 95 OSR2 y Windows NT 4.0 a mediados de 1996. Dado que Windows 95 era todavía nuevo y se habían lanzado pocos juegos para él, Microsoft se dedicó a promocionar intensamente DirectX entre los desarrolladores, quienes generalmente 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 , incluyendo leones reales , togas y algo parecido a un carnaval bajo techo. [ 23 ] Fue en este evento donde Microsoft presentó por primera vez Direct3D y demostró el juego multijugador MechWarrior  2 jugándose a través de Internet.

El equipo de DirectX se enfrentó a la difícil tarea de probar cada versión de DirectX con una amplia gama de hardware y software . Se probaron diversas 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 desarrolló y distribuyó pruebas que permitieron a la industria del hardware confirmar la compatibilidad de los nuevos diseños de hardware y controladores con DirectX.

Antes de la adición de Direct3D a DirectX, Microsoft había agregado OpenGL a su plataforma Windows  NT . [ 24 ] OpenGL había sido diseñado como una interfaz de software multiplataforma e independiente del sistema de ventanas para hardware gráfico por Silicon Graphics, Inc. para llevar la programación de gráficos 3D al ámbito principal de la programación de aplicaciones. También podía usarse para gráficos e imágenes 2D, y estaba controlado por la Junta de Revisión Arquitectónica (ARB), que incluía a Microsoft. [ 25 ] [ 26 ] Direct3D fue concebido como una alternativa a OpenGL controlada por Microsoft, enfocada inicialmente en el uso de juegos. A medida que los juegos 3D crecieron, los desarrolladores de juegos descubrieron que OpenGL también podía usarse eficazmente para el desarrollo de juegos. [ 27 ] En ese momento, comenzó una "batalla" entre los partidarios de OpenGL multiplataforma y Direct3D exclusivo de Windows. [ 28 ] Cabe mencionar que OpenGL fue respaldado en Microsoft por el equipo de DirectX. Si un desarrollador optaba por utilizar la API de gráficos 3D OpenGL en videojuegos , a menudo combinaba las demás API de DirectX, además de Direct3D, con OpenGL, ya que OpenGL no incluye todas las funcionalidades de DirectX, como el sonido o la compatibilidad con joysticks.

En una variante específica para consolas, Direct3D se utilizó como base para la API de las consolas Xbox , Xbox 360 y Xbox One de Microsoft. La implementación se desarrolló conjuntamente entre Microsoft y Nvidia , que desarrolló el hardware gráfico personalizado utilizado por la Xbox original. La API de Xbox era similar a Direct3D 8.1, pero no era actualizable como otras tecnologías de consolas. El nombre en clave de Xbox era DirectXbox, pero se abrevió a Xbox para su nombre comercial. [ 29 ]

En 2002, con el lanzamiento de DirectX 9, Direct3D recibió soporte para el uso de programas de sombreado mucho más largos que antes, con la versión 2.0 del sombreador de píxeles y vértices. Desde entonces, Microsoft ha seguido actualizando la suite DirectX, introduciendo Shader Model 3.0 en DirectX 9.0c, lanzado en agosto de 2004.

En abril de 2005, DirectShow se eliminó de DirectX y se trasladó al SDK de la plataforma de Microsoft .

Se ha confirmado que DirectX está presente en Windows Phone 8 de Microsoft . [ 30 ]

El trazado de rayos en tiempo real se anunció como DXR en 2018. Ese mismo año también se añadió compatibilidad para compilar HLSL a SPIR-V en el compilador de sombreadores de DirectX. [ 31 ]

Componentes

DirectX se compone de múltiples API:

Microsoft ha dejado de dar soporte a 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í mismos, se han creado objetos administrados sobre algunas partes de DirectX, como Managed Direct3D [ 34 ] y la biblioteca gráfica XNA [ 35 ] sobre Direct3D 9.

Microsoft distribuye la herramienta de depuración para DirectX llamada "PIX". [ 36 ]

Versiones

DirectX 9

Presentado por Microsoft en 2002, DirectX 9 fue un lanzamiento importante dentro de la familia DirectX. Incorporó numerosas funciones y mejoras 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 fecha de agosto de 2024, sigue siendo compatible con todas las versiones posteriores de Windows para garantizar la retrocompatibilidad.

Una de las características clave introducidas en Direct3D 9 fue Shader Model 2.0, que incluía Pixel Shader 2.0 y Vertex Shader 2.0. Estas permitieron una renderización gráfica más compleja y realista. También aportaron mejoras de rendimiento muy necesarias gracias a una mejor aceleración por hardware y un mejor aprovechamiento de los recursos de la GPU. Además, introdujo HLSL , que facilitó a los desarrolladores la creación de sombreadores.

DirectX 9 tuvo un impacto significativo en el desarrollo de videojuegos. Muchos juegos desde mediados de la década de 2000 hasta principios de la de 2010 se desarrollaron con DirectX 9, convirtiéndose en un estándar para los desarrolladores. Incluso hoy en día, algunos juegos siguen utilizando DirectX 9 como opción para hardware más antiguo o menos potente.

DirectX 10

Logotipo de Microsoft DirectX 10

DirectX 10, una importante actualización de la API DirectX, se incluyó en Windows Vista (lanzado a finales de 2006) y versiones posteriores, y solo estuvo disponible con esta versión. Las versiones anteriores de Windows, como Windows XP, no pueden ejecutar aplicaciones exclusivas de DirectX 10. Los programas que se ejecutan en Windows XP están limitados a DirectX 9.0c, que es la última versión principal disponible. [ 37 ]

Los cambios en DirectX 10 fueron extensos. Muchas partes de la API de DirectX quedaron obsoletas en el SDK de DirectX más reciente y se conservan solo por compatibilidad: DirectInput quedó obsoleto en favor de XInput , DirectSound quedó obsoleto en favor del sistema de herramientas de creación de audio multiplataforma (XACT) y, además, perdió la compatibilidad con el audio acelerado por hardware, ya que la pila de audio de Vista renderiza el sonido por software en la CPU. La DLL DPLAY.DLL de DirectPlay también se eliminó y se reemplazó por dplayx.dll; los juegos que dependen de esta DLL deben duplicarla y renombrarla como dplay.dll.

Para lograr la compatibilidad con versiones anteriores, DirectX en Windows Vista contiene varias versiones de Direct3D: [ 38 ]

  • Direct3D 9 : emula el comportamiento de Direct3D 9 tal como era en Windows XP. Los detalles y ventajas del modelo de controlador de pantalla de Windows (WDDM) de Vista se ocultan a la aplicación si hay controladores WDDM instalados. Esta es la única API disponible si solo hay controladores gráficos de XP (XDDM) instalados, por ejemplo, después de una actualización a Vista.
  • Direct3D 9Ex (conocido internamente durante el desarrollo de Windows Vista como 9.0L o 9.L): permite el acceso completo a las nuevas capacidades de WDDM (si los controladores WDDM están instalados) manteniendo la compatibilidad con las aplicaciones Direct3D existentes. La interfaz de usuario Windows Aero se basa en D3D 9Ex.
  • Direct3D 10 : Diseñado en torno al nuevo modelo de controlador de Windows Vista e incorpora una serie de mejoras en las capacidades de renderizado y la flexibilidad, incluido Shader Model 4 .

Direct3D 10.1 es una actualización incremental de Direct3D 10.0 que se incluyó y requirió Windows Vista Service Pack 1 , lanzado en febrero de 2008. [ 39 ] Esta versión establece principalmente algunos estándares de calidad de imagen adicionales para los proveedores de gráficos, al tiempo que brinda a los desarrolladores mayor control sobre la calidad de imagen. [ 40 ] También agrega soporte para matrices de mapas cúbicos, 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 multimuestreados [ 41 ] y requiere que la tarjeta de video sea compatible con Shader Model 4.1 o superior y operaciones de punto flotante de 32 bits. Direct3D 10.1 aún es totalmente compatible con el hardware Direct3D 10, pero para utilizar todas las nuevas características, se requiere hardware actualizado. [ 42 ]

DirectX 11

Logotipo de Microsoft DirectX 11

Microsoft presentó DirectX 11 en el evento Gamefest 08 en Seattle. La actualización final de 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 de software GPGPU ( DirectCompute ) y Direct3D 11 con soporte de teselación [ 43 ] [ 44 ] y soporte multihilo mejorado para ayudar a los desarrolladores de videojuegos a crear juegos que aprovechen mejor los procesadores multinúcleo . [ 45 ] Partes de la nueva API, como el manejo de recursos multihilo, pueden ser compatibles con hardware de la clase Direct3D 9/10/10.1. La teselación de hardware y Shader Model 5.0 requieren hardware compatible con Direct3D 11. [ 46 ] 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 retrocompatibilidad con versiones anteriores de Direct3D.

Se publicaron cuatro actualizaciones para DirectX 11:

  • DirectX 11.1 está incluido en Windows 8. Es compatible con WDDM 1.2 para un mayor rendimiento, cuenta con una integración mejorada de Direct2D (ahora en la versión 1.1), Direct3D y DirectCompute , e incluye las bibliotecas DirectXMath, XAudio2 y XInput del marco XNA. También ofrece compatibilidad con 3D estereoscópico para juegos y vídeo. [ 47 ] DirectX 11.1 también se adaptó parcialmente a Windows 7 mediante la actualización de plataforma de Windows 7. [ 48 ] [ 49 ]
  • DirectX 11.2 está incluido en Windows 8.1 (incluida la versión RT) y Windows Server 2012 R2 . [ 50 ] Añadió algunas características nuevas a Direct2D , como realizaciones de geometría. [ 51 ] También añadió composición de cadena de intercambio, que permite que algunos elementos de la escena se rendericen a resoluciones más bajas y luego se compongan mediante superposición de hardware con otras partes renderizadas a una resolución más alta. [ 52 ]
  • DirectX 11.X es un superconjunto de DirectX 11.2 que se ejecuta en Xbox One . [ 53 ] De hecho, incluye algunas características, como los paquetes de dibujo, que posteriormente se anunciaron como parte de DirectX 12. [ 54 ]
  • DirectX 11.3 se anunció junto con DirectX 12 en la GDC y se lanzó en 2015. Su objetivo es complementar a DirectX 12 como una alternativa de nivel superior. [ 55 ] Está incluido en Windows 10. [ 50 ]

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 característica principal destacada de la nueva versión de DirectX fue la introducción de la programación avanzada de bajo nivel con Direct3D 12, que puede 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 "eficiencia de nivel de consola en teléfono, tableta y PC". [ 56 ] El lanzamiento de Direct3D 12 viene junto con otras iniciativas para API de gráficos de baja sobrecarga, incluidos Mantle de AMD para tarjetas gráficas AMD, Metal de Apple para iOS y macOS y Vulkan multiplataforma de Khronos Group .

Direct3D 12 incluirá soporte para múltiples adaptadores, lo que permitirá a los desarrolladores utilizar varias GPU en un sistema simultáneamente; el soporte para múltiples GPU (mGPU) dependía anteriormente de implementaciones de fabricantes como AMD CrossFireX o NVIDIA SLI . [ 57 ] [ 58 ] [ 59 ] [ 60 ]

  • La compatibilidad implícita con Multiadaptadores funcionará de manera similar a las versiones anteriores de Direct3D, donde los fotogramas se renderizan alternativamente en GPU vinculadas con una potencia de cálculo similar.
  • Explicit Multiadapter ofrecerá dos patrones de API distintos para los desarrolladores. Las GPU vinculadas permitirán que Direct3D reconozca las tarjetas gráficas en SLI o CrossFireX como una sola GPU y utilice los recursos combinados; mientras que las GPU no vinculadas permitirán que Direct3D utilice GPU de diferentes fabricantes, como complementar la GPU dedicada con la GPU integrada en la CPU o combinar tarjetas AMD y NVIDIA. Sin embargo, las configuraciones complejas de múltiples GPU mixtas requieren una asistencia técnica mucho más detallada por parte de los desarrolladores.

Direct3D 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. [ 61 ]

En SIGGRAPH 2014, Intel publicó una demostración que mostraba un campo de asteroides generado por computadora , en la que se afirmaba que Direct3D 12 era entre un 50 % y un 70 % más eficiente que Direct3D 11 en velocidad de renderizado y consumo de energía de la CPU. [ 62 ] [ 63 ]

Ashes of the Singularity fue el primer juego disponible públicamente en utilizar Direct3D 12. Las pruebas realizadas por Ars Technica en agosto de 2015 revelaron ligeras regresiones de rendimiento en Direct3D 12 en comparación con el modo Direct3D 11 para la Nvidia GeForce 980 Ti , mientras que la AMD Radeon R9 290x logró mejoras de rendimiento constantes de hasta un 70 % bajo Direct3D 12, y en algunos escenarios la AMD superó a la más potente Nvidia bajo Direct3D 12. Las discrepancias de rendimiento pueden deberse a optimizaciones deficientes del controlador de Nvidia para Direct3D 12, o incluso a limitaciones de hardware de la tarjeta que fue optimizada para la ejecución en serie de Direct3D 11; sin embargo, la causa exacta sigue sin estar clara. [ 64 ]

Las mejoras de rendimiento de Direct3D 12 en Xbox no son tan sustanciales como en PC. [ 65 ]

En marzo de 2018, se anunció DirectX Raytracing (DXR), capaz de realizar trazado de rayos en tiempo real en hardware compatible, [ 66 ] y la API DXR se agregó 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 un complemento para ciertos títulos de juegos. [ 67 ]

DirectX 12 Ultimate

Microsoft presentó DirectX 12 Ultimate en marzo de 2020. DirectX 12 Ultimate unificará 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 , sombreado de tasa variable, que permite a los programadores controlar el nivel de detalle del sombreado según las decisiones de diseño, sombreadores de malla y retroalimentación de muestreo. [ 68 ] [ 69 ]

Historial de versiones

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 de MSDN sobre 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 muestra una versión como '4.09.00.0904', la herramienta DxDiag de Microsoft puede tenerla como '4.09.0000.0904'. [ 105 ]

Compatibilidad

Varias versiones de Windows han incluido y admitido diversas versiones de DirectX, lo que permite que las versiones más recientes del sistema operativo continúen ejecutando aplicaciones diseñadas para versiones anteriores de DirectX hasta que dichas versiones puedan ser gradualmente reemplazadas por API, controladores y hardware más recientes. [ 106 ]

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 deben escribir estos controladores para la interfaz de controlador de dispositivo (o DDI) de una versión específica de DirectX, y probar cada componente para garantizar su compatibilidad con DirectX. Algunos dispositivos solo tienen controladores compatibles con DirectX (es decir, es necesario instalar DirectX para poder usar ese hardware). Las primeras versiones de DirectX incluían una biblioteca actualizada con todos los controladores compatibles disponibles. Sin embargo, esta práctica se abandonó en favor del sistema de actualización de controladores de 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 entorno de ejecución de DirectX se diseñó para ser retrocompatible con controladores antiguos, lo que significa que las versiones más recientes de las API se diseñaron para interoperar con controladores antiguos escritos para una versión anterior de DDI. El programador de la aplicación tenía que consultar las capacidades de hardware disponibles utilizando un sistema complejo de "bits de capacidad", cada uno vinculado a una característica de hardware particular. Direct3D 7 y versiones anteriores funcionaban 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. [ 107 ] Sin embargo, el entorno de ejecución de Direct3D 10 en Windows Vista no puede ejecutarse en controladores de hardware antiguos debido a la DDI significativamente actualizada, que requiere un conjunto de características unificadas y abandona el uso de "bits de capacidad".

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 agrega el nivel 11_0 y "10 Nivel 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 video de gama "baja", "media" y "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 introdujo con Direct3D 11.1 .

Marco de trabajo .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 aplicaciones .NET utilizando lenguajes compatibles como C++ administrado o el lenguaje de programación C# . Esta API se conocía como " DirectX administrado " (o MDX, por sus siglas en inglés) y afirmaba ofrecer un rendimiento del 98 % 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, culminando en una versión beta llamada DirectX administrado 2.0. Si bien DirectX administrado 2.0 consolidó la funcionalidad que antes estaba dispersa en varios ensamblados en un solo ensamblado, simplificando así las dependencias para los desarrolladores de software, el desarrollo de esta versión se interrumpió posteriormente y ya no cuenta con soporte. La biblioteca DirectX administrado 2.0 dejó de tener soporte 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) diseñada para facilitar el desarrollo de juegos mediante la integración de DirectX, HLSL y otras herramientas en un solo paquete. También permite la ejecución de código administrado en Xbox 360. XNA Game Studio Express RTM se lanzó 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 y las API de Xbox 360 (XInput, XACT, etc.) no se incluyen en Windows. Los desarrolladores deben redistribuir 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 usar bibliotecas de terceros como:

  • SlimDX, una biblioteca de código abierto para la programación DirectX en .NET Framework.
  • SharpDX, [ 108 ] [ 109 ] que es un proyecto de código abierto que proporciona la API completa de DirectX para .NET en todas las plataformas Windows, lo que permite el desarrollo de juegos de alto rendimiento, renderizado de gráficos 2D y 3D, así como aplicaciones de sonido en tiempo real.
  • DirectShow.NET para el subconjunto DirectShow
  • Windows API CodePack para .NET Framework fue archivado el 14 de febrero de 2011 en Wayback Machine , una biblioteca de código abierto de Microsoft.

Alternativas

Existen alternativas a la familia de API DirectX , siendo OpenGL , su sucesor Vulkan , Metal y Mantle las que ofrecen características más comparables a Direct3D . Otros ejemplos de API incluyen SDL , Allegro , OpenMAX , OpenML, OpenAL , OpenCL , FMOD , SFML , etc. Muchas de estas bibliotecas son multiplataforma o tienen código fuente abierto. También existen implementaciones alternativas que buscan proporcionar la misma API, como la de Wine . Además, los desarrolladores de ReactOS están intentando reimplementar DirectX bajo el nombre de "ReactX".

Véase también

Notas

  1. Requiere Service Pack 2 o 3
  2. Requiere Service Pack 1 o 2

Referencias

  1. "Páginas técnicas de Dreamcast" . Junio ​​de 1999.
  2. "Microsoft anuncia Direct3D 12 para Linux / WSL2" . 19 de mayo de 2020.
  3. "Microsoft: El significado de Xbox - The Economist" . The Economist . 24 de noviembre de 2005.
  4. "Ayuda de DirectX" . computerhope.com .
  5. "¿Dónde está el SDK de DirectX?" . microsoft.com . Microsoft.
  6. DeMaria, Rusel (2019). "11. El Proyecto Manhattan". GAME OF X V.2 . CRC Press . Windows necesita admitir: ... – Volteo de página – Sincronización vertical de espacios en blanco – Mezcla de sonido precisa – Sincronización precisa de eventos de sonido y video – Rendimiento de blting sin procesar – Capacidad para configurar el modo gráfico ...
  7. Kelly, Christopher (1 de junio de 1995). "Vídeo para Windows y WinG" . Dr. Dobb's Journal . Consultado el 9 de agosto de 2022. El software de El Rey León, por ejemplo, es una aplicación WinToon. ... Al igual que WinToon, este ejemplo utiliza WinG para dibujar en el DIB.
  8. 1 2 3 4 5 Willetts, Samual (27 de julio de 2020). "Cómo DirectX definió los juegos de PC... con la ayuda de un Bill Gates armado con una escopeta" . PC Gamer . Recuperado el 7 de diciembre de 2020 .
  9. 1 2 3 4 Craddock, David (14 de noviembre de 2020). "Apuesta al negro: cómo Microsoft y Xbox cambiaron la cultura pop, parte 1 - capítulo 8: el poder de X" . Shacknews . Recuperado el 7 de diciembre de 2020 .
  10. "DirectX antes y ahora" . 20 de febrero de 2006. Archivado del original el 5 de julio de 2008. Consultado el 1 de agosto de 2008 .URL alternativa
  11. Drummond, Michael (2020). Renegades of the Empire (1.ª ed.). Three Rivers Press. pág. 62. ISBN   978-0609807453.
  12. "Búsqueda pública de patentes de la USPTO" .
  13. Haggarty, James (9 de diciembre de 2020). "Microsoft Misfit ayudó a la compañía a entrar en el mercado de los videojuegos" . The Wall Street Journal . Consultado el 9 de diciembre de 2020 .
  14. "Introducción". Interfaz de programación de aplicaciones DirectDraw . Microsoft. 20 de abril de 1995.
  15. "Introducción". Interfaz de programación de aplicaciones DirectSound . Microsoft. 20 de abril de 1995.
  16. "Introducción". Interfaz de programación de aplicaciones DirectPlay . Microsoft. 20 de abril de 1995.
  17. "Capítulo 3: Referencia de la API del joystick". Interfaz de programación de aplicaciones DirectInput . Microsoft. 20 de abril de 1995.
  18. "¿Qué es la reproducción automática?". Creación de títulos y juegos en CD-ROM compatibles con la reproducción automática . Microsoft. 1 de noviembre de 1994.
  19. "Descripción general de la arquitectura". Interfaz de programación de aplicaciones DirectDraw . Microsoft. 20 de abril de 1995.
  20. "54 ¿Qué es DCI?" . stason.org .
  21. Raskin, Robin (agosto de 1995). "Pobre desarrollador" . PC Magazine . Consultado el 7 de agosto de 2022 .
  22. Entrada del blog de Craig Eisler sobre el frenesí por compilar DirectX 1 a 5 en craig.theeislers.com
  23. Jay Barnson (13 de julio de 2006). "Cuentos del coyote desenfrenado" . Archivado del original el 17 de julio de 2006.
  24. Miller, Michael J. (diciembre de 1994). "El software del sistema GANADOR Microsoft Windows NT Workstation, versión 3.5" . PC Magazine . Consultado el 13 de agosto de 2022 .
  25. Kilgard, Mark (diciembre de 2008). "Filosofía de diseño de OpenGL (diapositiva)" . SlideShare . Recuperado el 14 de agosto de 2022 .
  26. Kilgard, Mark J. (1996). Programación OpenGL para el sistema X Window . Addison-Wesley . págs. 1–6 . 
  27. Berkes, Otto (12 de abril de 2015). "DirectX" . Blog de Otto Berkes . Consultado el 17 de agosto de 2022 .
  28. Hecker, Chris (abril de 1997). "Una carta abierta a Microsoft: Hagan lo correcto por la industria de los juegos 3D" (PDF) . Game Developer Magazine . Archivado (PDF) del original el 26 de enero de 2021. Recuperado el 29 de agosto de 2022 .
  29. Entrevista a J. Allard, PC Pro, archivada el 11 de octubre de 2007 en Wayback Machine , abril de 2004
  30. "Windows Phone 8 añade DirectX, desarrollo nativo y facilita la portabilidad de aplicaciones" . 20 de junio de 2012. Consultado el 23 de junio de 2012 .
  31. "Añadir el libro de recetas HLSL-spirv. (#1618)" . GitHub . 23 de octubre de 2018.
  32. Animación 3D de SPACE FIGHTER por DIRECT ANIMATION
  33. "Objetos multimedia de DirectX" . DirectShow . Microsoft Docs . 5 de junio de 2019. Los DMO han sido reemplazados por las transformaciones de Media Foundation (MFT).
  34. "DirectX 9: Uso de la API de gráficos Direct3D administrada en .NET" . microsoft.com . Microsoft. 22 de octubre de 2019.
  35. "Espacio de nombres Microsoft.Xna.Framework.Graphics" . microsoft.com . Microsoft. 29 de septiembre de 2011.
  36. "PIX" .
  37. "Preguntas frecuentes sobre DirectX" . microsoft.com . Microsoft.
  38. Chuck Walbourn (agosto de 2009). "API de gráficos en Windows" . MSDN . Consultado el 3 de octubre de 2009 .
  39. Albanesius, Chloe (29 de agosto de 2007). "Microsoft lanza el primer Service Pack para Vista" . PC Magazine . Archivado del original el 19 de marzo de 2008. Consultado el 29 de agosto de 2007 .
  40. "Microsoft presenta detalles de DirectX 10.1 en SIGGRAPH" . 7 de agosto de 2007. Archivado del original el 9 de septiembre de 2007. Consultado el 27 de agosto de 2007 .
  41. "Learn Network Inspire" (PDF) . AMD. Archivado del original (PDF) el 10 de abril de 2012. Consultado el 30 de diciembre de 2012 .
  42. "DirectX 10.1 no requiere una GPU nueva" . Windows Vista: La guía completa. 5 de marzo de 2008. Archivado del original el 29 de octubre de 2007. Consultado el 5 de marzo de 2008 .
  43. "¿Qué sigue para DirectX? Una descripción general de DirectX 11 — Una descripción general de DirectX 11" . Elite Bastards. 1 de septiembre de 2008. Archivado del original el 4 de septiembre de 2008. Recuperado el 4 de septiembre de 2008 .
  44. "DirectX 11: Un vistazo a lo que está por venir" . bit-tech.net. 17 de septiembre de 2008.
  45. Fecha de lanzamiento de Windows 7 y D3D 11
  46. "Blogs de MSDN" . msdn.com . Microsoft. 6 de agosto de 2021.
  47. "Guía de vista previa para desarrolladores de Windows 8" (PDF) . Archivado del original (PDF) el 7 de octubre de 2011.
  48. "Actualización de plataforma para Windows 7 (Windows)" . Msdn.microsoft.com . Consultado el 9 de agosto de 2014 .
  49. Pooya Eimandar (2013). DirectX 11.1 Game Programming . Packt Publishing Ltd. pág. 45. ISBN  978-1-84969-481-0.
  50. 1 2 "Cómo instalar la última versión de DirectX" . Soporte de Microsoft . Microsoft . Consultado el 27 de octubre de 2017 .
  51. "Descripción general de las realizaciones geométricas" . microsoft.com . Microsoft. 19 de agosto de 2020.
  52. Bennett Sorbo (26 de junio de 2013). "Novedades de Direct3D 11.2" . Canal 9 - BUILD 2013. Alrededor de las 20:00.
  53. "Microsoft rechaza oficialmente a Mantle" . semiaccurate.com . 16 de octubre de 2013.
  54. Segmento de Chris Tector en http://channel9.msdn.com/Blogs/DirectX-Developer-Blog/DirectX-Evolving-Microsoft-s-Graphics-Platform (a partir del minuto 18 aproximadamente).
  55. Smith, Ryan (18 de septiembre de 2014). "Microsoft detalla las nuevas funciones de renderizado de Direct3D 11.3 y 12" . AnandTech . Archivado del original el 21 de septiembre de 2014. Consultado el 6 de noviembre de 2014 .
  56. McMullen, Max (2 de abril de 2014). "Vista previa de la API Direct3D 12" . Canal 9. Microsoft .
  57. Moore, Bo (5 de mayo de 2015). "DirectX 12 podrá usar tu GPU integrada para mejorar el rendimiento" . PC Gamer . Future US . Consultado el 22 de agosto de 2015 .
  58. Michaud, Scott (4 de mayo de 2015). "BUILD 2015: La presentación final de DirectX 12" . PC Perspective . Archivado del original el 5 de septiembre de 2015. Recuperado el 22 de agosto de 2015 .
  59. Langley, Bryan (29 de julio de 2015). "¡Windows 10 y DirectX 12 lanzados!" . Blog para desarrolladores de DirectX de MSDN . Microsoft. Archivado del original el 2 de agosto de 2015 . Recuperado el 22 de agosto de 2015 .
  60. Yeung, Andrew (30 de abril de 2015). "Adaptador múltiple de DirectX 12: Activando el silicio inactivo y haciéndolo funcionar para ti" . Blog para desarrolladores de DirectX de MSDN . Microsoft. Archivado del original el 20 de agosto de 2015. Consultado el 22 de agosto de 2015 .
  61. Ryan Smith. "AnandTech - Microsoft anuncia DirectX 12: la programación gráfica de bajo nivel llega a DirectX" . anandtech.com . Archivado del original el 27 de marzo de 2014.
  62. Yeung, Andrew (13 de agosto de 2014). "DirectX 12: alto rendimiento y gran ahorro de energía" . Blog para desarrolladores de DirectX . Microsoft . Archivado del original el 13 de agosto de 2014. Consultado el 6 de noviembre de 2014 .
  63. Lauritzen, Andrew (11 de agosto de 2014). "SIGGRAPH 2014: DirectX 12 en Intel" . Developer Zone . Intel .
  64. Walton, Mark (19 de agosto de 2015). "DirectX 12 probado: una victoria temprana para AMD y una decepción para Nvidia" . Ars Technica UK . Consultado el 19 de agosto de 2015 .
  65. "El jefe de Xbox One advierte a los jugadores que no esperen mejoras drásticas de DirectX 12 - ExtremeTech" . ExtremeTech . 18 de junio de 2014. Consultado el 30 de septiembre de 2014 .
  66. "¡Anunciamos Microsoft DirectX Raytracing!" . Microsoft. 19 de marzo de 2018.
  67. "Microsoft adapta DirectX 12 a Windows 7, lo que mejora el rendimiento de algunos juegos de PC antiguos" . PCWorld . 13 de marzo de 2019. Consultado el 17 de abril de 2019 .
  68. "Anuncio de DirectX 12 Ultimate" . Microsoft . 19 de marzo de 2020. Consultado el 20 de marzo de 2020 .
  69. Kerr, Chris (20 de marzo de 2020). "Microsoft lanza DirectX 12 Ultimate para admitir gráficos de próxima generación" . Gamasutra . Consultado el 20 de marzo de 2020 .
  70. Chen, Raymond (2006). «Etimología e historia». The Old New Thing (1.ª ed.). Pearson Education. p. 330. ISBN   0-321-44030-7.
  71. "¿Qué pasó con DirectX 4? - Lo viejo y lo nuevo - Página principal - Blogs de MSDN" . Blogs.msdn.com. 22 de enero de 2004. Consultado el 30 de diciembre de 2012 .
  72. "Microsoft lanza la versión final de DirectX 6.0" . Microsoft.com . 7 de agosto de 1998. Archivado del original el 26 de agosto de 2015. Consultado el 19 de julio de 2019 .
  73. "Microsoft lanza DirectX 6.1" . Microsoft.com . 3 de febrero de 1999. Archivado del original el 26 de agosto de 2015. Consultado el 19 de julio de 2019 .
  74. "Microsoft DirectX – Preguntas frecuentes" . ActiveWin.com . Archivado del original el 10 de febrero de 2003. Consultado el 30 de agosto de 2019 .
  75. "Microsoft lanza la versión final de DirectX 7.0" . Microsoft.com . 22 de septiembre de 1999. Archivado del original el 19 de julio de 2019. Consultado el 19 de julio de 2019 .
  76. Paul Thurrott (21 de septiembre de 1999). "Microsoft lanza DirectX 7.0" . ITProToday . Archivado del original el 17 de abril de 2019. Consultado el 19 de julio de 2019 .
  77. Mielewczik, Michael. "DirectX 7.0: Nachbrenner para juegos". Pasante de PC . 12/1999: 124-125 .
  78. "Centro de descargas: DirectX / Versión - 7.0a" . Microsoft.com . Archivado del original el 8 de abril de 2000. Consultado el 20 de julio de 2019 .
  79. Paul Thurrott (14 de septiembre de 2000). "Reseña de Windows Millennium Edition (Windows Me)" . ITProToday . Archivado del original el 13 de junio de 2018. Consultado el 21 de julio de 2019 .
  80. Admin (10 de noviembre de 2000). "Se filtran detalles de DirectX 8" . Geek.com . Archivado del original el 12 de julio de 2016. Consultado el 20 de julio de 2019 .
  81. "DirectX 8.0a Redist" . Microsoft.com . 24 de enero de 2001. Archivado del original el 31 de marzo de 2001. Consultado el 20 de julio de 2019 .
  82. ^ Mielewczik, Michael (2001). "Brandaktuell - El nuevo DirectX 8.0". Técnico de Windows . 2001 (2). Múnich: MEK3 Verlag: 56– 59.
  83. "Descargar el instalador web de DirectX End-User Runtime desde el Centro de descargas oficial de Microsoft" . microsoft.com . Microsoft.
  84. "¡DirectX 9.0C lanzado!" . Neowin . Consultado el 3 de mayo de 2026 .
  85. "DirectX 9.0c Redistributable para desarrolladores de software - Descarga original multilingüe para Windows" . Microsoft . Archivado del original el 25 de febrero de 2006. Consultado el 3 de mayo de 2026 .{{cite web}}: CS1 maint: bot: estado de la URL original desconocido ( enlace )
  86. "DirectX 9.0c Redistributable (octubre de 2005) para desarrolladores de software - Descarga original multilingüe para Windows" . Microsoft . Archivado del original el 22 de diciembre de 2005. Consultado el 3 de mayo de 2026 .{{cite web}}: CS1 maint: bot: estado de la URL original desconocido ( enlace )
  87. "DirectX End-User Runtimes (diciembre de 2005) Descarga completa" . Microsoft . Archivado del original el 5 de febrero de 2006. Consultado el 3 de mayo de 2026 .{{cite web}}: CS1 maint: bot: estado de la URL original desconocido ( enlace )
  88. "DirectX End-User Runtimes (junio de 2010)" . Microsoft . Consultado el 4 de mayo de 2026 .
  89. Microsoft Corporation (10 de octubre de 2006). "Descargar DirectX End-User Runtimes desde el Centro de descargas oficial de Microsoft" . Microsoft . Archivado del original el 28 de junio de 2012. Consultado el 1 de marzo de 2025 .
  90. "DirectX End-User Runtimes (octubre de 2006)" . Microsoft . Archivado del original el 9 de noviembre de 2006. Consultado el 3 de mayo de 2026 .{{cite web}}: CS1 maint: bot: estado de la URL original desconocido ( enlace )
  91. "DirectX End-User Runtimes (diciembre de 2006)" . Microsoft . Archivado del original el 3 de febrero de 2007. Consultado el 3 de mayo de 2026 .{{cite web}}: CS1 maint: bot: estado de la URL original desconocido ( enlace )
  92. Microsoft Corporation (5 de febrero de 2010). "Descargar DirectX End-User Runtimes (febrero de 2010) desde el Centro de descargas oficial de Microsoft" . Microsoft . Archivado del original el 29 de abril de 2012. Consultado el 1 de marzo de 2025 .
  93. 1 2 Microsoft Corporation (7 de junio de 2010). "Detalles de descarga: DirectX End-User Runtimes (junio de 2010)" . Microsoft . Archivado del original el 14 de abril de 2011. Recuperado el 1 de marzo de 2025 .
  94. "Informe: No hay DirectX 10 para Windows XP" . GameDeveloper . 30 de mayo de 2006. Consultado el 23 de diciembre de 2021 .
  95. "Microsoft actualiza Windows Vista con DirectX 11" . pcgameshardware.com . 15 de septiembre de 2009. Archivado del original el 31 de marzo de 2016. Consultado el 15 de septiembre de 2009 .
  96. "Actualización de plataforma para Windows 7 SP1 y Windows Server 2008 R2 SP1" . Soporte técnico de Microsoft . Microsoft. 27 de febrero de 2013. Archivado del original el 7 de mayo de 2019. Consultado el 7 de mayo de 2019 .
  97. "Novedades de Windows 10, compilación 15063: aplicaciones UWP" . 20 de octubre de 2022.
  98. "Anuncio de nuevas características de DirectX 12" . 7 de noviembre de 2017.
  99. "Galería NuGet | Microsoft.Direct3D.D3D12On7 1.1.0" .
  100. "Especificaciones de DirectX" .
  101. "Rayos DirectX y la actualización de Windows 10 de octubre de 2018" . 2 de octubre de 2018.
  102. "Sombreado de tasa variable: Un bisturí en un mundo de mazos" . 18 de marzo de 2019.
  103. "Frecuencia de actualización dinámica: obtenga lo mejor de ambos mundos" . Blogs para desarrolladores . Microsoft. 28 de junio de 2021.
  104. "Arquitectura gráfica de WSL" . Conferencia de desarrolladores 2020. X.Org. Archivado del original el 8 de octubre de 2021. Recuperado el 8 de octubre de 2021 .
  105. "DirectX y Windows XP" . Archivado del original el 18 de enero de 2008.
  106. "¿Qué versión de DirectX tienes instalada en tu PC?" . support.microsoft.com . Consultado el 30 de septiembre de 2020 .
  107. MSN. "Requisitos mínimos de DDI" . Microsoft . Consultado el 2 de agosto de 2012 .
  108. "SharpDX - DirectX administrado" . Archivado del original el 16 de enero de 2023. Consultado el 30 de septiembre de 2014 .
  109. "sharpdx/SharpDX" . GitHub . Consultado el 30 de septiembre de 2014 .
  • Sitio web para desarrolladores de DirectX de Microsoft
  • Estado actual de DirectX 10: calidad de imagen y rendimiento