De DirectX 9 a DirectX 10, un viaje de calidad
DirectX 10 es la nueva API de Microsoft para juegos que acabará convirtiéndose en el estándar para PC o, al menos, esa es la intención de Microsoft. Es una herramienta potente, desde luego, pero también es potente el ordenador necesario para conseguir que “ande”. Y si además quieres que corra, hoy por hoy hay que soltar una cantidad de dinero importante para conseguirlo.
Aún así, se trata de una API que demuestra como un mismo juego puede ser totalmente diferente dependiendo la versión de DirectX que utilices. Y el máximo exponente de este tema es Crysis, el juego de acción de los creadores de Far Cry. Con este ejemplo, intentaré aclarar y resumir las diferencias que hay entre la versión 9 y 10 de DirectX y como puede cambiar la forma de ver los juegos.
Lo primero, y más obvio, que hay que decir es que DirectX 10 sólo funciona con Windows Vista, el nuevo sistema operativo de Microsoft. Pero, además hay dos detalles más. En primer lugar, no funciona con todas las tarjetas gráficas, ahora mismo sólo con la última generación de nVidia (8xxx) y las tarjetas ATI más recientes.
Lo segundo es que si tenemos ambas cosas, no disfrutaremos de ello en juegos que utilicen DirectX 9, principalmente porque DirectX 10 conserva el nombre básicamente para que no nos confundamos. En realidad, esta última versión no es compatible con anteriores versiones de DirectX. Por eso, Windows Vista emula DirectX 9 en la mayoría de juegos del mercado.
¿Por qué se planteó entonces Microsoft crear una API completamente nueva para el sistema operativo? Por algo muy simple y a la vez muy complejo: las limitaciones de DirectX 9.
Y es que la gran limitación de DX9 es el “Object Overhead”, que en palabras más simples, significa que DirectX 9 utilizaba ciclos de nuestra CPU para hacer renders antes de ser enviados a la GPU. Cuando se renderiza un juego, la aplicación primero debe llamar al API y luego el API llama al driver antes de poder llegar a la GPU. Todas estas llamadas son manejadas por la CPU y eso conlleva que se cree un importante cuello de botella.
Debido a estos problemas iniciales, Microsoft se dio cuenta de que era necesario crear limitaciones de objetos y, ahora mismo, la cantidad máxima de objetos en cada frame es de aproximadamente 500 objetos. El resultado es que casi siempre los desarrolladores deben balancear cuidadosamente el juego, para que este no se “cuelgue en medio de una partida”.
Un ejemplo bastante claro es la creación de un bosque. Si prestas atención en un bosque verás que un mismo árbol se repite infinidad de veces y en diferentes perspectivas y tamaños para dar la impresión de que son muchos. Este es uno de los recursos que los programadores utilizan para poner mas cantidad de objetos en un mismo frame, tratando de mostrar un paisaje lo más realista posible. Así DirectX 10 elimina esta limitación y es posible, por ejemplo, introducir miles de árboles diferentes como muestra Crysis.
Con la desaparición de este problema, además se reduce nada más y nada menos que a la mitad el tiempo de ejecución de un proceso. Con DirectX 10 se podrán realizar cálculos de física en los GPU, aumentando drásticamente la calidad de lo que podemos ver en pantalla.
La diferencia se aprecia en la siguiente pantalla de Flight Simulator X:

Microsoft también dio algunas de las características principales:
- Llamadas a la API más eficientes: (hasta un 10%) y menos frecuentes (se evitan muchas llamadas para cambiar renderstates y similares): Reduciendo este número se aligera la carga de CPU sobre la parte gráfica de la aplicación, lo que permite aprovechar mejor ambos sistemas.
- Shader Model 4.0.: Se aumenta el número en general (límite de registros, de render targets, de bytes en el vertex buffer…). Además, se permite el acceso a texturas sin restricciones desde cualquier tipo de shader (en el SM3.0, se podía acceder a texturas en el Vertex Shader, pero de forma poco eficiente y restringida).
- Geometry Shader: Este shader se coloca entre el Vertex y el Pixel Shader, y tiene una característica que no tienen los otros dos: Puede aumentar o disminuir el número de elementos que pasan a la siguiente fase. Incluso puede acceder a memoria del sistema, para guardar o cargar elementos. Teóricamente, esto permitiría crear geometría de forma procedimental, o hacer LOD de geometría en tiempo real, cosas así.
En resumidas cuentas, y dejando aparte las características técnicas y más complejas de DirectX 10 –sólo están algunas de las más importantes-, esta nueva API ofrece un cambio sustancial ya que la calidad que podremos ver en juegos como Crysis es realmente espectacular. Y es que hasta la llegada de las nuevas consolas, parecía que el PC era el nuevo rey en materia gráfica del videojuego. Ahora, con esta nueva API y el juego adecuado el PC puede superar de nuevo a las consolas de última generación.
Os dejo con un par de vídeos de Crysis muy espectaculares y que me han llamado especialmente la atención porque nos muestran dos escenas del juego. En los primeros segundos de cada vídeo vemos el juego como sería en DirectX 9 y después en DirectX 10.
Como se puede observar, hay muchos más efectos visuales, aunque lo más impactante es el efecto físico -otra de las particularidades de DirectX 10- que permite cambiar la orientación de llamas y humo simplemente con el aire
En este puedes observar que todo el sombreado cambia y que el número de partículas ha aumentado drásticamente, así como efectos colaterales y físicos del juego.

Hola:
Tengo Windows vista home premiun y lleva instalado el directx-10. Tengo Instalado un juego original que pide como requisito el Directx 9.0C. En el windows vista, al ejecutar el juego, el raton se ve como bailon y me cuesta picar en las pestañas de las pantallas.
Tengo el mismo juego en otro ordenador con windows xp y directx 9.0C, y va fenomenal. ¿Sera problema de este Directx 10 y quizas deba de desistalarlo? o por el contrario podria descargar el directx 9.0C y tener las dos versiones.
¿Me podrian acosenjar de que podria hacer y como?
Muchas gracias.
Pd.: los dos ordenadores tienen la misma configuracion: Disco duro, procesador, grafica, ect…
Enviado a las 8:35 am el 30 de Marzo por Ignacio Rodriguez AlarconHola, Tengo la placa Intel(R) G33/G31 Express Chipset Family de 256mb y quiero jugar a algunos juegos y me dice que el shader model 2 no es compatible y nose que es eso como lo cambio que hago ??
muchas gracias
si pueden respondan a mi mail
gracias
Enviado a las 3:15 am el 16 de Abril por Lautaro PulvirentiTengo una placa Intel(R) G33/31 Express Chipset FAmily de 256 y tengo problemas con algunos juegos pues por ejemplo el COD4 me manda un error en el cual no me deja ver nisikiera el menu para empezar a jugar, ¿hay algo que pueda hacer?
Enviado a las 9:56 pm el 7 de Mayo por Erickcomo descargar algun tipo de controlador o que se yo
o de plano tengo que comprarme otra tarjeta de video y si es asi cual es recomendable?
no se si importe pero las demas especificaciones de mi Pc son:
2 Ghz de memoria ram DDR2
1 Terabite de Disco duro
Procesador Core Quad de 2.4 Ghz
Acabo de comprar el de call of duty 2, pero en la instalacion me aparece que windows encontro un problema conocido, me manda a la pagina de activision(la empresa que lo hizo), donde no encuentro nada que me solucione el problema..
Me dice que es un problema de incompatibilidad …aun asi lo instale y cuando lo trato de jugar me dice que el direct x encontro un error “irrecuperable” … que problema hay? Mi compu tiene el windows vista con Direct X 10, y COD2 me pide el 9 .
No se mucho de informatica, pero estas son las especificaciones de mi compu y mas abajo pongo el equipo minimo requerdo por el juego y lo unico que creo que no embona ahi es el sistema operativo, pero ya lo puse para que fuera compatible …y me sigue marcando lo mismo:
Operating System: Windows Vista ™ Home Premium* , (6.0.6000)
Default Language: Spanish
DirectX* Version: 10.0
Physical Memory: 2037 MB
Minimum Graphics Memory: 8 MB
Maximum Graphics Memory: 358 MB
Graphics Memory in Use: 161 MB
Processor: x86 family 6 Model 15 Stepping 13
Processor Speed: 1662 MHZ
* Accelerator Information *
Accelerator in Use: Mobile Intel® 965 Express Chipset Family
Video BIOS: 1471
Current Graphics Mode: 1280 x 800 True Color (59 Hz)
* Devices Connected to the Graphics Accelerator *
Y el juego me pide un equipo mínimo: Sistema operativo: Windows 2000/XP Procesador: Pentium 1.4GHz o AMD Athlon XP 1700 o superior Memoria: 256 MB RAM DirectX: v9.0c Tarjeta gráfica: 64 MB VRAM
Espero y me puedan ayudar.
Enviado a las 7:59 am el 26 de Mayo por Rene AldereteGracias anticipadas
Tengo el mismo problema anterior, al instalar el juego y al momento de jugar me dice error desconocido y tengo la misma tarjeta grafica
Por favor respond a mi correo
Gracias
Enviado a las 1:42 am el 19 de Junio por CesarTengo Windows vista home premiun y lleva instalado el directx-10. Tengo Instalado un juego original que pide como requisito el Directx 9.0C. En el windows vista, al ejecutar el juego, el raton se ve como bailon y me cuesta picar en las pestañas de las pantallas.
Tengo el mismo juego en otro ordenador con windows xp y directx 9.0C, y va fenomenal. ¿Sera problema de este Directx 10 y quizas deba de desistalarlo? o por el contrario podria descargar el directx 9.0C y tener las dos versiones.
¿Me podrian acosenjar de que podria hacer y como?
Muchas gracias.
Enviado a las 6:32 am el 16 de Julio por gabriel1.Tu targeta grafica es una PATATA,no vale para juegos, lo siento, yo tengo la misma y lo se.
Enviado a las 2:38 pm el 21 de Julio por uno2.Instala xp, lo ganarás, con los ultimos drivers y directx 9c(el chip grafico esta pensado para xp y no soporta bien vista)
3.Asi por lo menos podras jugar algunos juegos, pero no esperes gran cosa, si no me crees visita intel.com y mira las especificaciones de tu chip grafico.