Que es DirectX?
DirectX es un conjunto de multimedia Application Programming Interfaces (API's) escrito por Microsoft. es una colección de Dynamic Link Libraries (DLLs) que contienen funciones útiles para todos los programadores de multimedia, siendo en su mayoría, independiente de la plataforma (platform independent). Esto, permite a los programadores, el acceso a gráficos en alta velocidad, sonido y funciones de dispositivos de entrada asi como desarrollar sus programas sin tener que analizar o testear las capacidades de un ordenador concreto. DirectX evalúa estas capacidades y si no están presentes, DirectX intentará (en algunos casos) emular esas funciones por "software" en vez de por Hardware.
Si volvemos al viejo MS-DOS, gente como los desarrolladores de videojuegos, tenían acceso directo al hardware para el cual estaban desarrollando su juego o aplicacion. Con acceso total a interrupts, tarjetas de sonido, input devices, y la famosa VGA controller, normalmente, sabiendo programarlo, los desarrolladores podían hacer cualquier cosa que se les ocurriese. Con el lanzamiento de Windows 3.1 no se sintieron especialmente motivados debido a la enorme sobrecarga que requería aprender todo el nuevo sistema de desarrollo (eran tiempos de muchos cambios y mucha información). De cualquier manera, el DOS tenía sus propios problemas.
El soporte de dispositivos Hardware (Hardware device support) en DOS era una complicada "pesadilla". Como el PC de Escritorio y la informática de consumo se hacía mas popular conforme las familias tenian mejores ingresos, empezó la competición por ofrecer mejor hardware, ofreciendo cientos de configuraciones para el PC . Con la disparatada cifra de posibles "tipos" de PC que los programadores se podían encontrar, se invertía mas tiempo en mantener la compatibilidad o programación de diferentes configuraciones por código, lo cual cada vez quitaba mas tiempo a los planes de desarrollo de los Juegos en si mismos!! Afortunadamente, todo esto empezó a cambiar.
[Ed. Nota - Alguien recuerda la dificultad de programar la tarjeta de Sonido en aquellos tiempos? todo el dia configurando las IRQ's y los DMA channels fue un claro ejemplo de frustración. y las asignaciones de memoria? Trabajar con la EMM/XMS era igual de frustrante....o tal vez más
.]
Con las promesas de siempre...cosas nuevas , diferentes y mejores, Microsoft descubrió Windows 95 a todo el mundo. Windows 95 poseía algunas mejoras y cualidades que superaban significativamente su predecesor basado en DOS. El standard “Plug and Play” fue introducido como una forma de que los usuarios de PC pudiesen instalar con sencillez el hardware mas actual. El sistema de manejo-de-recursos fue completamente revisado para el facil manejo de dispositivos y la independencia de dispositivos fuese una realidad. Desafortunadamente, Windows 95 fijó las mejoras de rendimiento para llevar los intereses de los desarrolladores hacia la Plataforma Windows 95 . Consecuentemente, casi todos los juegos que "corrian" bajo el modo DOS o bien requeria un 'reboot' del PC para que el juego pudiese arrancar en su propio sistema DOS o similar (otros ya no funcionaban en absoluto).
DirectX apareció para cambiar todo esto.
La aparente sencillez de querer hacer de Microsoft Windows una plataforma deseable para el multimedia development se tornó en algo bastante mas complicado de lo que MS pensó en un principio. y fue determinante que para proveer de la actuación requerida, DirectX necesitaría funcionar con unas librerías rápidas, a bajo-nivel que permitirían a los desarrolladores, mantener ciertos aspectos creativos en su código, sin que el código de DirectX resultase un "incordio".
El siguiente paso en la lista para los desarrolladores de DirectX era dejar el desarrollo del "soporte de hardware" a los fabricantes de hardware. Esto tiene mucho sentido, pues los fabricantes de hardware estan mas cualificados para escribir los Drivers para sus productos que cualquier otro desarrollador. Este acercamiento también ayudó a unificar el estándar para tecnología de los Drivers, manteniendo los aspectos esenciales de la compatibilidad a la vanguardia, para todas las clases de componentes adicionales del PC.
Otra de las características de DirectX es la capacidad de las Aplicaciones basadas en DirectX de ejecutarse al mismo tiempo que otras aplicaciones que no son DirectX sin causar interferencias en el sistema. Por último, DirectX dispondría de las capacidades que tenia el DOS mientras intentaba conseguir las demas especificaciones.
Que es lo que hace DirectX realmente?.DirectX provee de un juego de herramientas y comandos para mejorar la experiencia en juegos y otras aplicaciones del tipo multimedia permitiendo que el hardware y el software puedan "entenderse" mucho mas fácilmente.
El API provee a las aplicaciones multimedia de un gran acceso a las características avanzadas del Hardware de alto-rendimiento como las 3D (3 dimensiones) chips de aceleración gráfica asi como chips de tarjetas de sonido. Tambien controla otras funciones de bajo-nivel, esto incluye...aceleración de gráficos 2D (2 dimensiones), soporte para un amplio rango de dispositivos de entrada como por ejemplo joysticks/joy-pads, keyboards, ratones, controles de reproduccion y control de sonido para una gran gama de dispositivos, control de juegos en RED y multiplayer, y control de varios formatos de streaming multimedia. Con cada nueva revision, mas características son añadidas para que los desarrolladores de software puedan utilizarla cuanto antes en los nuevos proyectos de software multimedia....y en ultima instancia, tambien disponible para los aficionados a la programación multimedia..
Principales ComponentesAqui tienes una lista de los principales componentes (con su función) que conforman DirectX:
DirectDraw - Gráficos 2D
Direct3D - Gráficos 3D
DirectSound - Sonido 2D
DirectSound3D - Sonido 3D
DirectMusic - Musica
DirectPlay - Network/Multiplayer
DirectInput - Dispositivos de Entrada
Necesito DirectX?Si juegas a los juegos de Windows98 o algun sistema operativo posterior, posiblemente necesiten de las funcionalidades de DirectX. Afortunadamente, si las aplicaciones requieren una versión concreta de DirectX invariablemente vendrán con su propio setup de instalación del DirectX installer en el CD de instalación del software , garantizándote que tienes la revisión correcta para poder jugar al juego, Pero esto no es todo. tu puedes actualizar tu versión de DirectX aunque actualmente no la necesites. Haciendo esto, tendrás implementada la ultima version de los API’s, los cuales contienen mejoras y patchs (de solucion de errrores) que algunas otras distribuciones de DirectX contienen. Esto podría, al menos en teoria, ofrecerte una mejor experiencia en tus Juegos, una mejor calidad de sonido en tus aplicaciones, o una recepción del "streaming" mejorada. Tambien, Instalando la ultima versión de DirectX, tu puedes "activar" una característica avanzada de tu Tarjeta Gráfica (Pixel shader 3.0 en el juego Far-Cry por ejemplo). Nota: tambien podria ser necesario que te tuvieses que "descargar" los ultimos drivers de tu tarjeta de Video para poder "activar" esta característica avanzada..
Ahora quiero descargarmela, donde la consigo?Windows 95, Windows 98, Windows 98 SE, Windows Millennium Edition (Windows Me), Windows 2000, Windows Server 2003, and Windows XP tienen integrado el soporte para DirectX. De cualquier manera, la versión mas "actual" de DirectX que Windows 95 puede usar es la 8.0a,. Para todos los demás, puedes bajarte la ultima versión de DirectX (9.0c) de la web de microsoft
Y que pasa con NT ? DirectX tambien está disponible para NT4.0 como parte del Service pack 6. Pensandolo bien... quien querria hacer esto?, es un misterio para mi ;-)
Después de instalarlo, dice que algunos drivers no están certificados, es algo malo?Las actualizaciones de los Driver de los fabricantes de hardware, son enviadas a Microsoft los cuales efectuan una serie de pruebas para certificar su compatibilidad (WHQL). De cualquier manera, a veces el fabricante distribuye los drivers para su uso público y al mismo tiempo los evia a MS sin esperar por la certificación. Estos drivers pueden ofrecer soporte DirectX pero no han sido certificados. Asi que antes de instalar drivers no certificados, deberias echar un vistazo al manual de los drivers para comprobar su compatibilidad con DirectX.
Como se desinstala DirectX?
DirectX es un componente de sistema de Windows y como muchos otros componentes de sistema ( MSN messenger por ejemplo), una vez instalado en el sistema, te será bastante dificil desinstalarlo. asi que si algo va mal y te ves atascado. Pero tranquilo, hay algunas soluciones. Las ultimas versiones de Windows disponen de Puntos de Restauración del Sistema. siempre es buena idea hacer un punto de restauracion del sistema antes de instalar nuevos drivers o cosas como DirectX. Tambien, podemos usar la herramienta de diagnóstico de DirectX . Desafortunadamente, Microsoft no te dice donde está, y no se añade ningun icono al Panel de Control ni al menú de inicio. Para poder ejecutarlo, tienes que buscar este archivo (\windows\system32\dxdiag.exe). Esta herramienta de diagnóstico te permite controlar algunos parámetros del DirectX API (activar o desactivar características...etc.) Tambien es útil para saber que tipo de version se está ejecutando en el sistema sobre el que estes trabajando. Tambien existen des-instaladores de Terceras compañías....pero una desinstalacion de DirectX defectuosa, puede "estropear" todo el sistema (asi que cuidado
.
Que nos depara el futuro?Por el momento, la version que mejor se acomoda a los juegos de ultima generacion es DirectX 9.0c. Esta versión cuenta con capacidades avanzadas como el Shader Model 3.0,. En breve plazo de tiempo, cada vez mas juegos se beneficiarán de las características avanzadas de DirectX 9.0c.
La siguiente versión DirectX vendrá como siempre con muchos mas cambios. Microsoft va a unificar los diferentes API's de DirectX bajo el nuevo nombre de la Windows Graphics Foundation y Avalon, el cual está planeado lanzar con la nueva version de Windows llamada Longhorn o Windows Vista . DirectX seguirá existiendo aún, pero solo de "nombre" y solo para los componentes que aun queden funcionando. Esto quiere decir que la nueva generación de Tarjetas Gráficas no dirán que son DirectX compatible, pero soportarán el WGF1.0 (o algo parecido).
Llegados aqui,
Mungler dice: it is not known if any other portion of DirectX is going to splinter off to form it's own "club." Functions of your controllers and sound cards will still be under the control of the main set of DirectX API's, but Longhorn is still a way off yet and things may change between now and then.
N.d.T: Creo que lo que Mungler viene a decir...es que las funciones de tus controladores y tarjetas de sonido seguirán bajo el control del juego de API's principales de DirectX, lo que ocurra a partir de ahora seria especular, ya que Longhorn está a punto de salir al mercado, y muchas cosas podrian cambiar de ahora a cuando salga este S.O. Tampoco se descarta que alguna "porción" de DirectX forme su propio "club"´.
Consideraciones FinalesMientras que las cosas como OpenGL y el viejo Glide (3dfx) son solo API's gráficos, DirectX son una serie de funciones que controlan sonido, video, network communications y tambien los gráficos. DirectX actua como interprete de las funciones de software a funciones nativas de los Dispositivos de Video y de Sonido o inscluso permitiéndote controlar la tecla nº 25 de tu ratón (jejej). Ofreciendote grandes niveles de compatibilidad entre el Hardware moderno y los juegos antiguos (y tambien viejo Hardware con los nuevos Juegos). DirectX's provee y gestiona todas estas funciones para que los programadores puedan desarrollar nuevas aplicaciones multimedia y el usuario final apenas tenga que preocuparse de nada de esto."