| Nebula | Zona Usuario | Arcade | PC | DS | PSP | Xbox 360 | Wii | PS3 | Análisis | Artículos | Foro | Game40 |
  Regístrate

  Nick:                                 Clave:
        
  Nuevo usuario?                  
  Olvidaste tu password?


 
 
  Avanzada


  Noticias
  Sistemas
  Artículos
  Análisis
  Avances
  Opinión


  Foro
  Game40
  Compañías
  Personajes
  Términos
  Top
  Fatality
  Cine
  JuegoForum
  Área de Usuario
  Búsqueda Users


  Noticias
  Pc
  Playstation 3
  Wii
  Nintendo DS
  Sony PSP
  Retro Sistemas
  Opinión
  Xbox 360
  Cine
  Off-Topic


  Arcade
  Wii
  Playstation 3
  Xbox 360
  Nintendo DS
  Sony PSP


  Redacción
  Colabora
  Publicidad
 

 DirectX
                                                                                                                                                                 Sábado, 17 de Mayo de 2008

Siguiendo con la serie de artículos dedicados a librerías para programación de videojuegos, que iniciamos con este artículo sobre OpenGL, esta vez le toca el turno a DirectX, las famosas librerías de Microsoft.

Historia

En la época de los inicios de Windows, antes del 95, cuando los juegos se ejecutaban en MS-DOS, los desarrolladores de videojuegos debían programar la detección y acceso a los sistemas hardware que tenía el ordenador a través del sistema operativo. Ese hardware eran las tarjetas gráficas y de sonido y periféricos, como el ratón, teclado y joystick. Por aquel entonces, se utilizaba el estándar de la asociación VESA para las tarjeta gráficas, y como estándar de sonido se utilizaban las librerías de Sound Blaster de Creative.

Pero con el tiempo comenzaron a multiplicarse el número de tarjetas gráficas y de sonido, a la vez que diferentes joysticks, ratones, etc. Los desarrolladores veían como se empezaba a complicar y alargar la programación para abarcar todos los tipos de hardware que salían al mercado.

En los sistemas Windows, el acceso directo al hardware estaba protegido por el sistema operativo, por lo que el acceso a tarjetas gráficas y de sonido era lento e ineficaz. Para resolver esto surgió DirectX para Windows95.

DirectX es una librería que está por encima del hardware y que se utiliza comúnmente para el desarrollo de videojuegos. El sistema operativo permite a DirectX el acceso al hardware eficientemente. Así, el desarrollador del videojuego sólo programa contra las liberías de DirectX, y es el propio DirectX el que pasa la información a los drivers del hardware correspondiente de una manera rápida y eficaz.

En noviembre de 1994, tres amigos llamados Eisler, Alex St. John y Eric Engstrom, se plantearon convertir a Windows95 una plataforma en la que los juegos pudieran acceder a las altas prestaciones de las tarjetas gráficas. Los tres desarrollaron en un tiempo crítico, unos 5-6 meses, un SDK para Windows95 para el desarrollo de juegos. Podéis leer la historia de creación y evolución de DirectX en el blog de Eisler

Versión DirectX

Sistema Operativo

Fecha Lanzamiento

DirectX 1.0


30 septiembre 1995

DirectX 2.0/2.0a

Windows 95 OSR2 y NT 4.0

5 junio 1996

DirectX 3.0/3.0a

Windows NT 4.0 SP3
Última versión para Windows NT 4.0

15 septiembre 1996

DirectX 4.0

Nunca se lanzó 


DirectX 5.0

Disponible como beta para Windows NT 5.0 que se intala en Windows NT 4.0

16 julio 1997

DirectX 5.1


1 diciembre 1997

DirectX 5.2

DirectX 5.2 para Windows 95

5 mayo 1998

DirectX 5.2

Windows 98

5 mayo 1998

DirectX 6.0

Windows CE para la Dreamcast

7 agosto 1998

DirectX 6.1

Windows 98 SE
Última versión para Windows NT 4.0

3 febrero 1999

DirectX 7.0

Windows 2000

22 septiembre 1999

DirectX 7.0a

 

1999

DirectX 7.1

Windows ME

16 septiembre 1999

DirectX 8.0 (RC0)

 

30 septiembre 2000

DirectX 8.0 (RC14)

Xbox
 

3 noviembre 2000

DirectX 8.0a (RC14)

Última versión para Windows 95

7 noviembre 2000

DirectX 8.1 (RC7)

Windows XP

12 noviembre 2001

DirectX 9.0

Windows Server 2003

19 diciembre 2002

DirectX 9.0a

 

26 marzo 2003

DirectX 9.0b (RC2)

 

13 agosto 2003

DirectX 9.0c (RC0)

Windows XP SP2, Windows Server 2003 SP1, y Xbox 360.

13 diciembre 2004

DirectX 9.0c

Compatible con todas las versiones de Windows en las que DirectX 9.0C (RC0) era compatible

Primera inclusion de las DLLs D3DX

9 diciembre 2005

DirectX 9.0c

Las versiones de diciembre de 2005 y febrero de 2006 añaden el formato XML a algunas clases.

Agosto 2005, con actualizaciones bimensuales

DirectX 10.0

Exclusivo para Windows Vista

30 noviembre 2006

APIs de DirectX

Al existir distintos tipos de hardware y periféricos se desarrollaron varios API's para tratarlos, en su conjunto forman DirectX:

DirectX Graphics: Gráficos. Consta de:
    - DirectDraw: Para gráficos 2D, aunque muy poco usado.
    - Direct3D: Para gráficos 3D, esta es la ¨competencia¨ de OpenGL.
DirectInput: Para entrada de datos de teclados, ratones, joysticks, pads.
DirectPlay: Para comunicación en red.
DirectSound: Para la reproducción y grabación de sonido. Consta de :
    -Direct3DSound: Sonido 3D
DirectMusic: Para reproducir sonidos y música en tiempo real.
DirectXMedia: Compuesto de DirectAnimation, DirectShow, DirectX Video Acceleration, Direct3D Retained Mode y DirectX Transform for animation.
DirectXMedia Objects: Soporte para streaming como codificadores, descodificadores y efectos.

Varios de estos elementos arriba listados se crearon a lo largo de las versiones de DirectX. En DirectX 10 ha habido muchos cambios, ya que se pretende una fusión/sustitución con el API de desarrollo de la XBox. Por ejemplo DirectInput se abandona y es sustituida por XInput (API de XBox), DirectPlay por XBox Live, DirectShow por MediaFoundation, DirectSound por XACT.

Las APIs que están más relacionadas con el mundo de los videojuegos son:
  • Direct3D: Para la representación en 3D y el uso de aceleración por hardware.
  • DirectInput: Para la gestión de entrada de datos por parte del usuario: Teclado, ratón, joystick, pad, etc.
  • Direct3DSound: Para el sonido 3D de los juegos.
  • DirectShow: Para la reproducción de videos.

Me gustaría destacar que Direct3D es la que se encarga de la representación 3D. Es decir, es la parte de DirectX que trata con la tarjeta gráfica y su aceleración. Direct3D es la competencia, por así decirlo, de OpenGL. Mucha gente confunde erróneamente DirectX con Direct3D, y compara DirectX directamente con OpenGL.

La última versión de DirectX es DirectX 10, y viene con Windows Vista, se iba a llamar Windows Graphics Foundation, pero al final se decidió continuar con el número de versiones de DirectX. Como nota curiosa es que Microsoft ha apostado por usar la aceleración 3D para su interfaz gráfica Aero, opción disponibles en las versiones más completas de Windows Vista. Podéis leer más en este artículo sobre Windows Vista y DirectX 10

DirectX instala una herramienta llamada DirectX Diagnostic que analiza y muestra las librerías instaladas de DirectX y también permite hacer pruebas de video, sonido y música. Para ejecutarla solo tenéis que ir a inicio, pulsar sobre ejecutar y escribir dxdiag. Con esto os saldrá la pantalla principal de esta herramienta de diagnóstico, donde podréis ver la versión instalada y si hay algún problema de compatibilidad.

A los juegos que hagan uso intensivo de las nuevas y flamantes DirectX 10 aun les queda bastante para salir a la luz. Además, el hardware que soporta DirectX10, todavía es muy caro para un comprador de calle. Aún así podéis ver en la siguiente lista los juegos que están preparando para DirectX 10 y otros que han preparado parches de actualización para poder jugar con DirectX10.

lightman

Creative Commons License
Esta obra está bajo una licencia de Creative Commons.