DirectX 10

Juan Mellado, 19 Diciembre, 2005 - 15:27

DirectX se actualiza cada 2 meses, y el SDK de este mes de diciembre ha venido con un pequeño regalo de Navidad: documentación y ejemplos de DirectX 10.

Los ejemplos sólo funcionan sobre la demo de Windows Vista, así que no he podido probarlos, pero leyendo un poco por encima la documentación se ve que la estrella de esta nueva versión será el Geometry Shader (GS). La principal aportación del GS será la posibilidad de generar geometría en tiempo real. Es decir, que se podrán generar vértices dentro de la GPU, lo que supone un cambio muy importante con respecto a la situación actual, en la que la GPU sólo puede operar con los vértices enviados por el driver desde el programa. Y es más, se podrá trabajar a nivel de primitiva. Es decir, se podrá trabajar con triángulos en vez de con sólo vértices de forma individual como se hace ahora mismo.

En el tutorial 13 del SDK se ve de forma fácil como se puede utilizar el GS para hacer que la GPU genere geometría en tiempo real. El tutorial contiene un ejemplo en el que contruye una malla a partir de otra. Se toman todos los triángulos que componen el modelo de un personaje y se generan nuevos triángulos "extruyéndolos" en la dirección de la normal. De esta forma se consigue una nueva malla que rodea al modelo como si fuera un "campo de fuerza" que se adapta perfectamente a su figura. Y todo esto dentro de la GPU, sin intervención alguna por parte de la CPU.

Otro ejemplo de la documentación incluye un sistema de partículas gestionado también totalmente dentro de la GPU. Todo un caso de estudio.

Pero el GS no es el único cambio importante e impactante de esta futura versión de DirectX, el pipeline en general también cambia, y mucho. Se compondrá de las siguientes "stages": Input Assembler, Vertex Shader, Geometry Shader, Stream Output, Rasterizer, Pixel Shader y Output Merger. El Stream Output, a pesar de tener un nombre tan poco atractivo, promete poder redirigir la salida del GS hacia "stages" posteriores y anteriores. Es decir, las salidas del GS podrán volverse a utilizar como entradas del pipeline. Y todo esto además sin intervención de la CPU gracias al uso de buffers dentro de la propia tarjeta gráfica y una nueva API llamada DrawAuto diseñada exlusivamente para esto.

Otros cambios de DirectX incluyen un mejor soporte para depuración, con posibilidades de cambiar en tiempo de ejecución de un device hardware a otro software, o la aparición de nuevos APIs, como DXGI para trabajar con las distintas tarjetas gráficas que puede haber presentes en el sistema. De hecho, un puntero a una interface de tipo IDXGIAdapter es uno de los parámetros que se deben pasar a la función D3D10CreateDevice, aunque en los fuentes de los ejemplos se deja a NULL, supongo que para tomar la tarjeta principal por defecto.

También hay otros cambios orientados a la integración de los juegos dentro del nuevo Windows Vista. Al parecer, esta nueva versión de Windows llevará una opción de menú llamada "Games" en la que se listarán los juegos instalados en el sistema con sus características. Para que los juegos aparezcan en ese menú las compañias desarrolladoras tendrán que crear un pequeño fichero XML con unas determinadas características. Para ayudar en la creación de ese fichero Microsoft suministra una pequeña herramienta que se engloba dentro de lo que se dado por llamar "The Windows Vista Game Explorer".

Una última nota, dentro de algunos de los directorios donde se encuentran los fuentes de los ejemplos hay pequeños vídeos en los que se ven los programas en acción. Siempre es interesante echarles un vistazo.

¿No encontró lo que buscaba?

Utilice el buscador para encontrar más páginas en esta web o en toda Internet.
 
Web www.inmensia.com