|
Articulo - ¿Que
es DirectX?:
" Con el reciente lanzamiento de la version
9.0c, DirectX de nuevo capta el foco de atención del público.
Asi que pensé escribir este artículo sobre lo que
hace DirectX realmente.
También se me ocurrio
hace tiempo que DirectX, y sus variadas versiones, ha tenido un
gran impacto en algunos aspectos de la programación en
Windows...afectando muchas cosas mas que por ejemplo nuestras
experiencias jugando a nuevos juegos y aún asi...sigue
siendo un gran desconocido entre la comunidad de usuarios..
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 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 Componentes
Aqui 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 APIs, 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), aqui puedes
descargartela
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 ultima versión de DirectX es la 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
. 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.
Snaked dice: Creo que lo que
Mangler 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 Finales
Mientras 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 insclus 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."
Mungler / Digital
Silence
|