Comencemos con lo básico: ¿qué es DirectX?
Su historia se remonta a mediados de los años noventa, y la idea de esta herramienta vino a la mente de los especialistas de Microsoft. DirectX no es más que un conjunto de funciones API. Esta abreviatura significa Interfaz de programación de aplicaciones, que traducimos como Interfaz de programación de aplicaciones. Traduce los comandos del sistema operativo, programas y juegos al “lenguaje” de la tarjeta de sonido y video.
Para simplificar las cosas, DirectX simplemente admite la generación de gráficos, sonido y otras tareas típicamente asociadas con el correcto funcionamiento de los juegos de computadora o ciertas aplicaciones multimedia y herramientas profesionales. La introducción de las bibliotecas de DirectX también ha hecho que sea más rápido y fácil para los propios desarrolladores escribir juegos para diversas especificaciones. Por lo tanto, no debería sorprender a nadie que esta solución tenga soporte completo en la plataforma Windows y las consolas Xbox.
salto generacional
Para mantenerse al día con el progreso del hardware, el software también debe mantenerse al día. Esta regla también se aplica a las herramientas de DirectX. Este problema se explica mejor con un ejemplo, así que echemos un vistazo más de cerca a la transición entre DirectX 10 y DirectX 11. El primero se creó durante los días de Windows Vista y se suponía que sería una gran revolución en comparación con su predecesor. El segundo fue creado con Windows 7 en mente, siendo su principal componente preinstalado.
Diferencias significativas a favor de los 11 métodos de generación de imágenes en cuestión: renderizado de sombras, introducción de teselado, soporte para texto con una resolución más alta. La API número 11 también introdujo soporte para Shader Model 5.0. Sin embargo, lo importante es que se ha permitido a Eleven utilizar correctamente el potencial de los procesadores multinúcleo en juegos y aplicaciones profesionales.
En la etapa inicial de DX11, el salto gráfico en los juegos no fue inmediatamente colosal. Esto sucedió por el simple hecho de implementar una solución moderna en motores gráficos obsoletos. También debe prestar atención a la diferencia en el juego en ambas versiones, que también se debe a la antigüedad del equipo, pero todavía hay muchos factores que determinan la altura y la estabilidad de los cuadros por segundo.
Para usar una versión específica de DirectX en un juego determinado, se deben cumplir ciertos criterios:
- Primero, DirectX debe estar instalado en el sistema,
- El sistema operativo Windows que está utilizando debe ser compatible con esta versión de DirectX,
- La tarjeta de video instalada en la PC debe ser compatible con ciertas bibliotecas de DirectX,
- El juego debe definir los tres elementos anteriores como disponibles para poder usarlos.
Por qué podríamos querer cambiar la versión de DirectX
Como ya hemos establecido, el soporte adecuado para una versión particular de DirectX es absolutamente esencial para que un juego u otra aplicación que use sus bibliotecas funcione correctamente. Además, los parches y las versiones más nuevas de DirectX aprovechan mejor el potencial de los chips y procesadores gráficos modernos. El sistema operativo también es fundamental. Brevemente, la situación es la siguiente:
- Windows XP: el desarrollo de API se detuvo en DirectX 9c,
- Windows Vista: presenta DirectX 10 y versiones posteriores con correcciones de 10.1. Después de instalar el Service Pack 2, se agregó DX11,
- Windows 7, 8, 8.1: admite todas las versiones anteriores de DirectX. 11 – su componente incorporado,
- Windows 10, 11: se lanzó DirectX 12 y es una parte integral del sistema.
DirectX es compatible con versiones anteriores. La nueva variante mantiene las características introducidas por sus antecesores. Es por eso que Windows 10 se lleva bien fácilmente con los juegos en el antiguo DirectX 9. Sin embargo, no siempre todo sale bien y, a veces, puede encontrar obstáculos en forma de un error o un archivo faltante en relación con DirectX 9, por ejemplo, un mensaje sobre D3d9.dll.
Un problema aparte son los juegos escritos para dos versiones de DirectX o cuando se agregó soporte para la siguiente después de un tiempo. Un ejemplo es el popular Fortnite, que ofrece los números de API de jugador 11 y 12. La opción más nueva es el soporte adecuado para DLSS y ray tracing, que los propietarios de tarjetas Nvidia Turing y Ampere apreciarán. Sin embargo, después de ejecutar DX11, el juego puede generar fps máximos más bajos, pero el promedio de velocidad de fotogramas y la estabilidad de fotogramas son mucho mejores. Podemos ver una tendencia similar, por ejemplo, en Battlefield V.
Y ahora llegamos al punto, es decir, a las limitaciones de hardware en forma de GPU. Si la tarjeta de video no es compatible con esta versión de DirectX, no ejecutaremos el juego con soporte para DirectX. Un ejemplo tangible es el título Dirt 5, que se basó únicamente en DirectX 12. No ejecutaremos el juego en las tarjetas de la serie Nvidia Kepler. En teoría, estas GTX 760 son oficialmente compatibles con DX12, pero tras una inspección más detallada, veremos que esto solo se aplica a algunas bibliotecas. Además, todavía está el problema de la evolución de las API y los controladores de tarjetas de video, donde los productos de la serie Kepler y más antiguos ya terminaron su vida.
¿Cómo cambiar la versión de DirectX?
En realidad hay varias formas. La forma más sencilla de hacerlo es ver las opciones de juego disponibles en la pestaña Gráficos. En Battlefield V, podemos cambiar fácilmente entre DX11 y 12, aunque esta maniobra requiere recargar la aplicación cada vez. Vale la pena enfatizar aquí que, por ejemplo, en las tarjetas de la serie Nvidia Pascal (GTX 1060, 1070, etc.), BFV funciona algo mejor con Eleven. Por otro lado, es más probable que los jugadores con Radeon RX 570, 580, etc. similares graviten hacia la DX12.
Otra forma de reemplazar DirectX es buscar en la carpeta del juego. Old Crysis podría ejecutarse desde un ejecutable independiente con diferentes versiones de DirectX, aunque un método más avanzado sería editar manualmente el archivo de configuración del juego. Abierto en el bloc de notas, le permite cambiar muchas configuraciones, incluida la versión de DirectX. Windows 7 también tenía la capacidad de ejecutar una aplicación en modo de compatibilidad con XP, aunque esta maniobra no siempre fue exitosa.
También sucede que la propia comunidad modding acude al rescate. Esto crea ejecutables que introducen una versión más nueva de DirectX en un juego escrito para versiones mucho más antiguas. Un gran ejemplo sería Unreal Tournament de 1999. Gracias a la comunidad de fans, el juego se ha enriquecido con la compatibilidad con DirectX 10. Un pequeño archivo copiado en el directorio del juego también funciona con Deus EX o Clive Barker’s Undying. Este pequeño procedimiento afecta ligeramente el método de filtrado de texturas, pero sobre todo le permite ejecutar el título sin cortes bruscos en el hardware moderno. Aunque hoy UT funciona perfectamente incluso desde el nivel 3Dfx, recientemente lo probé en la GTX 1060.
Por último, tenemos programas externos que obligan a la aplicación a trabajar con una versión específica de DirectX. Los resultados de este procedimiento pueden ser variados ya menudo insatisfactorios. Aquí veo un uso limitado solo para aplicaciones básicas o juegos más antiguos. Personalmente, nunca he visto a nadie ejecutar Forza Horizon, escrito desde cero para DX12, en una tarjeta gráfica solo para DX11 de esta manera.
en pocas palabras resumen
Ah, recuerdo muy bien la frustración de que Crysis 3 solo se ejecutaría en tarjetas compatibles con DirectX 11. La frustración es aún mayor porque también se lanzó una versión de Xbox 360 basada en las bibliotecas de DirectX 9 de Windows 7 que no bibliotecas compatibles con DirectX 12. Microsoft prometió agregar esta opción más adelante para la ventana desgastada, pero el proyecto fue abandonado.
Como puede ver en los ejemplos anteriores, los problemas de compatibilidad en la plataforma de PC con los juegos son un tema del río. Sin embargo, lo importante es que si nos encontramos con algún problema, no es el nombre de DirectX, sino la edad del nombre, escrito con un sistema operativo completamente diferente en mente. Los juegos de la era de Windows 98 o incluso XP son difíciles de ejecutar en un sistema operativo más nuevo, porque pueden faltar muchos componentes más importantes que Direct. En última instancia, parece que lo más importante cuando se juega con hardware y software es la paciencia para experimentar.
Deja una respuesta