He estado examinando un poco más a fondo la documentación preliminar del API de DirectX 10 y la verdad es que he visto cambios, muchos cambios, ¿demasiados cambios?.
Lo primero que me ha llamado la atención es el número de interfaces, de las apenas 20 que tiene DirectX 9 se va a pasar a más de 50 en DirectX 10. Y los nombres de las nuevas interfaces dicen mucho acerca de la orientación que está tomando DirectX en esta versión, baste decir que 20 de las nuevas interfaces empiezan por la palabra «Effect».
Las interfaces parecen tener pocos métodos, y muchos del tipo Get/Set. Aunque la excepción a esta regla la representa naturalmente la interface ID3D10Device que, para variar, es la que más métodos tiene, unos 100 más o menos. En esta interface la novedad es que ha cambiado la nomenclatura de algunos de los métodos, ahora hay grupos de funciones que empiezan su nombre por «GS», «IA», «OM», «PS», «RS», «SO» y «VS», en clara alusión al «Geometry Shader», «Input Assembler», «Output Merger», «Pixel Shader», «Rasterizer Stage», «Stream Output» y «Vertex Shader». Es decir, a cada uno de los «stages» del nuevo pipeline, del que tanto vamos a oir hablar a partir de ahora.
Las funciones globales externas a las interfaces también han crecido en número. Y si en la versión 9 básicamente sólo se utilizaba Direct3DCreate9 para obtener la interface de entrada a DirectX, en la versión 10 aparecen D3D10CreateDevice y D3D10CreateDeviceAndSwapChain como funciones globales. Importante fijarse en que son funciones para crear interfaces a los devices, no para crear la interface IDirect3D10, que por otra parte no existe.
Ante tantos cambios creo que lo mejor será empezar, otra vez, por lo básico y mirar los tutoriales uno a uno para entender la nueva filosofía de trabajo, la manera de funcionar del pipeline, la nueva estructura en capas, las facilidades de depuración, …
En otro orden de cosas, lo que me tiene un poco intrigado es que DirectX 10 está pensado para Windows Vista, una nueva versión de Windows que tiene previsto salir al mercado el año que viene (2006). Y que para poder manejarse con soltura con él supongo que se necesitará un PC con procesador de 64 bits, 2 gigas de memoria, un disco duro rápido y una tarjeta gráfica con soporte para Shaders 4.0, amén de una buena conexión a Internet para descargarse las actualizaciones de forma periódica. Pero, ¿cuando saldrán los primeros programas para Windows Vista que requieran DirectX 10?. Y es más, ¿cuando saldrán los primeros programas por los que merezca la pena actualizar los ordenadores?. ¿Habrá que esperar un par de años hasta que aparezca un software capaz de aprovechar todas las posibilidades del nuevo hardware?. Y sobre todo, ¿cómo enfocarán las compañias de software este cambio?. A mi personalmente me parece un cambio lo bastante grande como para que no sea posible adaptar el software existente en poco tiempo y que va a requerir una gran inversión.