Identificarte

Versión Completa : ¿Qué cambios traerá DirectX 10?


Sponsored links
.




byteheadx
octubre 24, 2006, 07:52
Una de las mayores evoluciones en la industria de los juegos esta por venir. El sólo hecho de que Microsoft vaya a lanzar un nuevo sistema operativo es de por sí un evento mayúsculo, pero esta vez no viene solo, porque junto con su nuevo Windows Vista, la empresa de Redmond introducirá un nuevo API, desarrollado desde cero.

No tan rápido ¿Que es un API?

La Interfaz de Programación de Aplicaciones, o su acrónimo en inglés Application Programming Interface (API), es un conjunto de funciones residentes en bibliotecas (generalmente dinámicas) que permiten que una aplicación corra bajo el sistema operativo Windows.

Originalmente, se incluyó DirectX en Windows para que los desarrolladores pudiesen tener acceso a varios aspectos de una tarjeta gráfica, tarjeta de sonido y dispositivos de entrada (mouse, teclado, joypad, etc) sin la necesidad de programar individualmente para cada hardware .

DirectX esta compuesto de varios sub API, entre las que se incluyen DirectSound, DirectInput y DirectMusic. El componente que ha tenido mayor evolución ha sido Direct3D, debido al gran desarrollo de las tarjetas de video.

Las funciones API se dividen en las siguientes:

* Depuración y manejo de errores
* E/S de dispositivos
* DLLs, procesos e hilos
* Comunicación entre procesos
* Manejo de la memoria
* Monitoreo del desempeño
* Manejo de energía
* Almacenamiento
* Información del sistema
* GDI (interfaz gráfica) de Windows
* Interfaz de usuario de Windows

Ahora que ya sabemos lo que es un API podemos imaginarnos la importancia de DirectX 10, pero... ¿Es sólo otra versión de DirectX? ¿Qué grandes mejoras específicamente trae? ¿Es una movida de Microsoft para que todos tengamos que renovar nuestro Hardware?

Esas y otras dudas, quedarán claras como el agua en los siguientes párrafos.



¿Sólo otra versión de DirectX?

El DX10 es otra versión de DirectX, eso está claro, pero es necesario contrastar sus atributos con los de su antecesor, DX9, para poder entender la importancia del cambio. Mal que mal, DX9 apareció en el 2002 y aunque en su momento fué un agran adelanto, en el intertanto han aparecido tecnologías nuevas que lo han ido haciendo paulatinamente obsoleto.


DirectX 9 Overhead

Una de las limitaciones mas grandes de DX9 es el "Object Overhead", una condición que crea un cuello de botella para los desarrolladores de juegos. Debido a lo anterior, es necesario plantear un API que corrija este problema.

¿Qué queremos decir con "Object Overhead"? En palabras simples, DX9 utilizaba ciclos de procesador para completar tareas necesarias para hacer renders antes de ser enviados a la tarjeta de video. Cuando se renderea un juego, la aplicación primero debe llamar al API y luego el API llama al Driver antes de poder llegar a tu GPU. Estas llamadas son manejadas por el CPU y eso utiliza recursos muy valiosos y limitados, pero además alarga el camino que debe recorrer la información para que el proceso sea exitoso. Ambas características convierten al Object Overhead en un importante cuello de botella.
http://www.chilehardware.com/modules/guias/images/20061024/dx9overheadad6.jpg

Dentro de este proceso hay limitaciones de cuántos objetos puedes mostrar en la imagen en un momento dado en un frame dado. Los objetos pueden ser cualquier cosa en un juego, un personaje o un árbol por ejemplo. La cantidad máxima de objetos en cada frame actualmente es de alrededor de 500 objetos, cualquier cosa sobre eso produce un gran cuello de botella a nivel de CPU. Lo anterior obliga que los desarrolladores de contenido deban balancear cuidadosamente el juego para evitar cuellos de botella producidos por el API y el CPU. Pese a que uno podría pensar que 500 objetos es un límite generoso, la progresiva complejización de los escenarios de los juegos, orientadas a ofrecer una experiencia más envolvente, ha terminado por requerir más que esa cifra.

Para dar una idea de la limitación anterior, pensemos poe ejemplo en un juego cuya acción transcurra en un bosque. Sabemos que en un bosque real hay miles de arboles y arbustos distintos, pero debido a la limitación de DX9, la mejor representación de un bosque que el API actual puede ofrecer consiste en la repetición de un mismo árbol con mínimas variaciones entre uno y otro. Es una salida ingeniosa para subsanar la limitación, pero el escenario no alcanza a ser realista. DirectX 10 eliminara esta limitación y será posible por ejemplo introducir miles de arboles distintos en un frame dado.


¿Qué nos entregara DirectX 10 a cambio?

DirectX 10 nos permitirá poner más objetos únicos en un frame lo que nos mostrará ambientes más realistas y más inmersivos. Aún podremos encontrar limites en cuanto a cantidad de objetos pero ya no será el API el factor limitante sino sólo el GPU y la imaginación de los desarrolladores.

Con la desaparición del Overhead veremos además una reducción en el tiempo de ejecución de los juegos. Calculen que actualmente DirectX 9 y el driver producen el 40% del tiempo de ejecución, DirectX10 reducirá a la mitad esa proporción.

El hecho de que los cálculos que antes pasaban por el CPU ahora puedan ejecutarse directamente en el GPU, liberará una cierta cantidad de potencia en la plataforma, pero además permitirá ejecutar en el GPU cálculos no necesariamente relacionados con gráficos, como son las aplicaciones de GPGPU de entre las cuales destaca el cálculo de físicas.

La siguiente diapositiva explica, según el punto de vista de Nvidia, la mejora que se producirá en los cálculos físicos, debido más que nada a que estos cálculos son un proceso altamente paralelizado, ideal para aprovechar la fuerza bruta de un GPU. Como podemos ver de las 3 etapas del proceso del calculo de físicas el que menos paralelismo tiene es de un 70%.

http://www.chilehardware.com/modules/guias/images/20061024/fisicasenelgpuqq9.jpg

Limitaciones de un Pipeline Fijo

La siguiente limitación de DirectX 9 y las GPUs actuales es la naturaleza de sus pipelines, que es orientado a una función fija. En una GPU los Procesadores de Vertex constituyen un conjunto separado de los Procesadores de Pixeles, y dependiendo de la escena puede darse el caso que un conjunto esté utilizado al 100% mientras el otro está en reposo. El hecho de que los shaders cumplan una tarea específica redunda, etonces, en una permanente subutilización de recursos.

http://www.chilehardware.com/modules/guias/images/20061024/gputradicionalqq0.jpg

¿Como soluciona esto DirectX10?

Nuevos Shaders de Geometria

Una de las nuevas características de DirectX 10 es una nueva etapa en el pipeline este se llama Shader de Geometría. Este nuevo shader se incorpora a la idea de un pipeline unificado y será una nueva etapa en este componente. La gracia del Shader de Geometría es que ayudará a tener escenas mas complejas, al permitir que el desarrollador del juego a tome formas simples (puntos, líneas o triángulos) y generar objetos complejos a su alrededor. Este nuevo atributo permitirá nuevos e interesantes efectos como son el el Mapping Displacement en tiempo real y Motion Blur.



Stream Out

Esta es una función nueva también en la arquitectura de DirectX 10 y se encuentra asociada a los Shaders de Geometría. El Stream Out permite guardar información de los Vertex shaders o de los Geometry shaders en el buffer y habilita la opción de múltiples pasadas en el Geometry shader.


Arquitectura Unificada

Como dijimos antes, actualmente los Pixel y Vertex shaders existen en conjuntos separados. Sin embargo, para ser compatible con DirectX 10 el hardware deberá pasar a ser completamente unificado. Esto significa que cualquier shader unificado debe ser capaz de funcionar como Vertex Shader, Pixel Shader o Geometr Shader indistintamente y según la ocasión lo requiera. De este modo ya no habrá tarjetas con X pixel shader e Y vertex shaders. Simplemente tendrá N shaders unificados capaces de hacer de todo.

Lo anterior permitirá que dependiendo de la escena, podamos usar toda la potencia de la VGA para procesar vértices o bien pixeles, evitando tener recursos desaprovechados y redoblando a cambio los recursos disponibles para la operación en curso.

http://www.chilehardware.com/modules/guias/images/20061024/gpudx10ok1.jpg

Comparativa entre arquitectura DirectX 9 y DirectX 10

http://www.chilehardware.com/modules/guias/images/20061024/d93dpipeliningvv9.jpg
http://www.chilehardware.com/modules/guias/images/20061024/d103dpipeliningdk3.jpg

Beneficios para Gamers

Mayor nivel de detalles

Para desplegar una imagen, el API interpreta y ejecuta las instrucciones con que un desarrollador le "describe" una figura. Con DX10 esta interpretación y ejecución resultará en formas más detalladas y realistas, sin nececidad de complejizar la manera como se caracteriza el objeto. Veamos por ejemplo el nivel de realismo en la cara de algunos personajes en Half Life 2 (DX9) y Crysis (juego DX10 por venir).

Fotografía 1: DirectX 9 (Half Life 2)
http://www.chilehardware.com/modules/guias/images/20061024/hl2.jpg

Fotografía 2: DirectX 10 (Crysis)
http://img141.imageshack.us/img141/9813/picture2my6yf1.jpg

Pueden ver las diferencias con sus propios ojos, si comparamos las fotografías, que DirectX 10 agrega un nuevo nivel de realismo a los juegos haciendo a los personajes más reales. Ustedes pueden ver el increíble detalle de la imagen de Crysis, con expresiones faciales, marcas en la cara, el bigote, los ojos todo esto suma a un mayor realismo

Veamos otro ejemplo, en donde una misma figura es interpretada y procesada por DX9 (a la izquierda) y por DX10 (a la derecha)
http://img237.imageshack.us/img237/9443/picture3pg2wr0.jpghttp://img381.imageshack.us/img381/8489/picture4hm2js6.jpg

DirectX 9 "simula" detalles con técnicas como mapping normal mientras DirectX 10 incrementa el nivel de detalles en los personajes y materiales. Fíjense por favor en los detalles del pez a la derecha, las puntas en el "lomo" del bicho son mucho más prominentes y el efecto de profundidad está mucho mejor logrado.



Procesamiento de Sombras

La siguiente imagen nos muestra coloreada en verde la proyección que hace una figura para generar la sombra, característica que evidentemente cambia según el origen de la luz. En DirectX 9 la sombra es generada en el CPU, reduciendo el rendimiento del sistema en conjunto con cada nuevo personaje con sombra que aparezca en la imagen. En DirectX 10, la sombra puede ser generada y rendeada completamente en la GPU aprovechando su capacidad de hacer cálculos en paralelos con enorme potencia.
http://img181.imageshack.us/img181/1759/picture5nq6ig8.jpg (http://imageshack.us)


Escenas mas complejas y ambientes mas complejos

El siguiente ejemplo servirá para ilustrar el realismo que DX10 puede imprimirle a un escenario. Aunque el ejemplo está algo exagerado y hemos visto a DX9 desplegar escenas de mucho mayor calidad, al menos en este caso la exageración contribuye a hacer más evidente el cambio.

Wallpaper rendereado en DirectX9
http://img167.imageshack.us/img167/5994/picture6nn2ol5.jpg
Wallpaper rendereado en DirectX10
http://img381.imageshack.us/img381/1491/picture7ld8zc3.jpg

En las 2 fotografías que vemos arriba, vemos un wallpaper de Windows Vista con un lago y montañas, esta es la concepción del artista. Estas fueron rendeadas usando Microsoft Flight Simulator X en DirectX 9 y DirectX 10 respectivamente. Las diferencias son aparentes. A primera vista vemos que el agua se ve mucho más real, con espuma y olas. DirectX 10 hace posible efectos volumétricos, lo que se traduce en nubes más gruesas y mas prominentes, mientras que la dispersión de luces aumenta el efecto del lado oscuro de la montaña. También notaran que el bosque se ve mucho mas prominente y con mas detalle en la imagen con DirectX 10. Finalmente se pueden dar cuenta que DirectX 10 permite reflejos mas exactos de la montaña incluso en aguas mas turbulentas


Escenarios dinámicos

En las imágenes podemos ver como crecen las plantas alrededor de la cripta a medida que pasa el tiempo en el juego. DirectX 10 facilita al motor del juego a cambiar dinámicamente la apariencia de la cripta a medida que pasa el tiempo. Esto permite que los escenarios en el juego evolucionen a medida que pasa el tiempo mientras pasa el tiempo, así reemplazando los ambientes estáticos de manera única estimulando el crecimiento natural y el paso del tiempo.

http://www.chilehardware.com/modules/guias/images/20061024/escenariodinamico.jpg

DirectX 9 no es capaz de crear nueva geometría en el GPU. Tampoco es capaz de almacenar resultados intermedios de geometría, por ejemplo, escenarios entre la 1era imagen y la última no podría haber sido generados en el GPU usando DirectX 9.



Motion blurring

En las imágenes superiores lo que vemos es un ejemplo realista de motion blur, que son posibles gracias a DirectX 10. En versiones anteriores de DirectX para realizar el motion blur los desarrolladores tomaban la imagen y la difuminaban posteriormente, mientras que en DirectX 10 darían el aspecto de motion blur de forma dinámica, simulando justamente como si fuera una cámara y modificando el tiempo de exposición, lo que dará un resultado mucho mas realista.

http://img401.imageshack.us/img401/8398/picture12db9yg9.jpghttp://img296.imageshack.us/img296/9497/picture13sl8sb5.jpg

Conclusión

Como habrán podido comprobar, la evolución del API no es una simple medida de fuerza bruta, sino que hay diferencias estructurales de por medio. No sólo cambia "cuánto se hace" sino que "qué se hace" y "dónde se hace" también. Esta reubicación y reorganización de la cadena productiva permitirá salvar obstáculos que estaban estrangulando el desarrollo de los juegos e impedían dar el salto al siguiente nivel.

Sin embargo, lo que se ha cubierto en este artículo se enfoca más que nada en los potenciales usos del API, pero falta comprobar lo realmente importante: Qué y cómo harán los fabricantes de GPU para implementar y explotar estar características. Y eso, queridos usuarios, es una batalla que nos dará muchas horas de entretención para los meses venideros.

Fuentes:
http://www.chilehardware.com/modules.php?op=modload&name=guias&file=guia067-20061024
http://enthusiast.hardocp.com/article.html?art=MTA0NSwxLCxoZW50aHVzaWFzdA==
http://es.wikipedia.org/wiki/Windows_API
http://blogs.technet.com/windowsvista/articles/447226.aspx

Oesoto
octubre 24, 2006, 08:27
Esto queda mejor en tarjetas - placas debido a que los temas están muy relacionados.

Excelente reunión de información.

byteheadx
octubre 24, 2006, 09:08
ok gracias Oesoto..... lo puse en recomendaciones porque me parece que es una recomendacion para los que quieren compara video en los proximos meses pero igual aqui queda bien.....

juanej
octubre 24, 2006, 09:16
la ***************a que esa agua en el wallpaper de fsx es cgi, OMG

Nexus_sv
octubre 24, 2006, 09:24
Buena info, lastima que ya compre mi tarjeta DX9 pero tambien acordemonos que las nuevas vendran algo cariño$a$, asi que hasta que se puedan comprar, quizas la mayoria cambiaremos vcard.

edimec
octubre 24, 2006, 09:28
impresionante.... despues le pongo k+ , muy buena info

machuk
octubre 24, 2006, 10:31
Más info:

http://www.extremetech.com/article2/0,1697,1982042,00.asp
http://www.extremetech.com/article2/0,1697,1985155,00.asp
http://www.extremetech.com/article2/0,1697,1986931,00.asp
http://www.extremetech.com/article2/0,1697,1989806,00.asp

Sanosuke [ SC ]
octubre 24, 2006, 11:29
uffff amanecera y veremos....segun las imagenes se ve del put... pero yo ya no me impresiono con nada...ya hemso visto en anteriores anuncios unos juegos donde los muestran bien bacanos y cuando llegan y uno ve el motor grafico como q decepcionan pues uno esperaba mas x todo el despliegue q le habian hecho....mejor dicho hasta q no lo vea no lo creo( lo q pasa es q me dejo muy impresionado ese rostro de crysis y como dije hasta no ver no creer)

JAXZ
octubre 25, 2006, 12:11
Muy buen Review desde ya hay que prepararse. :cool:

skymaster
octubre 25, 2006, 03:50
entonces segun esto, nuestras tarjetas graficas quedaran obsoletas????

Nexus_sv
octubre 25, 2006, 06:54
entonces segun esto, nuestras tarjetas graficas quedaran obsoletas????

Ahorita la mayoria de juegos son DX9, asi que mientras el DX10 no entre de lleno, quedaran obsoletas.

Talves Mocosoft genera algun parche para las tarjetas DX9 y puedan trabajar con DX10.

METR0
octubre 25, 2006, 07:03
que bueno que les gusto la guia/ articulo :)

hudson
octubre 25, 2006, 09:27
me encontre estas comparaciones entre la vida real y crysis(dx10)

aqui video de este game , son impresionantes http://www.youtube.com/results?search_query=crysis&search=Search

http://maxygames.no.sapo.pt/Crysis.jpg

Sanosuke [ SC ]
octubre 25, 2006, 09:32
juemadre es q es mucha similitud tan berraca....pero yo creo q habia leido q de todas maneras las Vcard de DX9 no es q fueran a quedar obsoletas sino q sencillamente no serian compatibles con algunos aplicativos pero de q correrian juegos los correrian....como x ejemplo mi X850XT q no viene con soporte para SM 3.0.....y me corre de maravilla juegos q vienen con esa aplicacion.......

ASSTERIZC0
octubre 25, 2006, 08:05
Si claro...

Vos con tu Radeon de SM 2.0 y todo el universo de DX 10 con SM 4.0 vas a estar al alcance de todo, no te preocupes xq' vos no podes saber con exactitud hasta ke punto tus appz/games usan tal extension de DX 9 y en dado caso como no tiene soporte pues no lo muestra y como no lo muestra mas rendimiento... taa daa :P...OMG! en el foro de Crysis pueden ver mas foticos posted by me y hablando de "BY", estas v.cards en todas sus cajas incluiran una pegatina ke dira "RECOMMENDED BY UBISOFT FOR CRYSIS". :jaguar:

Salu2... ;)

Sanosuke [ SC ]
octubre 25, 2006, 08:24
exactamente a eso me refiria men.....

HRC-DAV1DS-RC-
octubre 27, 2006, 07:40
MI X800XT SOPORTA ESTE DX?


ojala... :O por que esta exelete!

Nexus_sv
octubre 27, 2006, 08:16
MI X800XT SOPORTA ESTE DX?


ojala... :O por que esta exelete!

Tu tarjeta es DX9 asi que no soportara el DX10 :muerto:

HRC-DAV1DS-RC-
octubre 27, 2006, 08:57
erda y como q tarjeta soporta un juego como crysis?

este juego se ve exlente y vale la pena hasta otro pc por tenerlo!

pd: perdon lo noobada XD

ASSTERIZC0
octubre 27, 2006, 09:46
No ome!

Perense su tantico xq' ni sikiera el sistema operativo ha salido a flote y kieren jugar Crysis, no way! eso no tiene chiste, de todas la imagen renderizada x el CryEngine 2 y otros games de ultima generacion son cosa fuera del hardware actual. Tengan seguro ke v.card nueva van a necesitar para correrlo full.power... hey! pero ¿como creen ke hacen los videos de gameplay?... han de usar un sistema QuadSli o ya tienen los 1ros prototipos de v.cards DX X y toda esa vaina. :huh:

Salu2... ;)

Nexus_sv
octubre 27, 2006, 11:09
Usaran algo asi?

http://www.laneros.com/attachment.php?attachmentid=67911&stc=1&d=1162008586

deus
octubre 28, 2006, 01:42
mm, ese dx10 se ve muy bien, lastima que solo sirve con vista, mmm, eso hara pasar mucha gente a ese SO, yo por lo pronto sigo con consolas

[VCR] MrSaDisTicS
octubre 28, 2006, 03:03
a mi lo que me va a traer es un dolor para mi bolsillo por lo menos ya compre un intel coreduo2 creo que con eso poder manejar vista y direct 10 hasta por lo menos 1 ños para upgradear en velocidad ! !!!! en cuanto a vga unos meses mas por que pienso comprar vga en la 2da generacion de direct 10 siempre y cuando mi actual placa me permita jugar decentemente !

pitymonkey
octubre 28, 2006, 04:21
mi vale, usted me ha dejado impresionado con este análisis del directX10, esta super real, sólo espero que las video card estén mucho más avanzadas que los juegos, para tener más durabilidad de los juegos y que no nos salgan lentos.

byteheadx
octubre 28, 2006, 05:30
mi vale, usted me ha dejado impresionado con este análisis del directX10, esta super real, sólo espero que las video card estén mucho más avanzadas que los juegos, para tener más durabilidad de los juegos y que no nos salgan lentos.


Gracias pero ese analisis no es mio es de un colaborador de Chilehardware, que se hace llamar metro; yo solo lo publique aqui.

byteheadx
noviembre 4, 2006, 12:09
arriba y que siga el temita.

TukSor
noviembre 5, 2006, 10:31
man, que buen articulo. thks

jomunoz
noviembre 6, 2006, 08:42
uffff amanecera y veremos....segun las imagenes se ve del put... pero yo ya no me impresiono con nada...ya hemso visto en anteriores anuncios unos juegos donde los muestran bien bacanos y cuando llegan y uno ve el motor grafico como q decepcionan pues uno esperaba mas x todo el despliegue q le habian hecho....mejor dicho hasta q no lo vea no lo creo( lo q pasa es q me dejo muy impresionado ese rostro de crysis y como dije hasta no ver no creer)


eso es mas verdad que un HP, eso se debe a que la calidad grafica no depende tanto de la API si no del artista que crea los modelos y las texturas. Un juego que presente esa calidad grafica durante todos los escenarios demoria mucho en desarrollar, y como el tiempo es dinero no creo que todo el juego se vaya a ver así.


PD: DX se comunica con las tarjetas graficas atravez de un .dll, asi que desde que microsoft provea un .dll las tarjetas graficas actuales podrán correr esos juegos pero sin las funcionalidades (efectos) nuevas.

Knight4000
noviembre 6, 2006, 09:25
Ay dios k graficas a toos los mortales solo nos toka cerrar los ojos e imaginarnos jugar con esas graficas :(:(:(. Salud2 :p

Sanosuke [ SC ]
noviembre 6, 2006, 10:01
no te pongas asi viejo x q recuerda q querer es poder .....y yo creo querer poder tener una buena Vcard con DX10:P

piblo
noviembre 6, 2006, 10:14
hermano excelente articulo hay va un k+

JAXZ
noviembre 6, 2006, 10:26
por lo pronto a esperar a que bajen de precio esas Vcard's con DirectX10 :cool:

byteheadx
noviembre 9, 2006, 02:07
arriba y que siga el tema.

hudson
diciembre 6, 2006, 09:05
Tim Sweeney opina que es una buena tecnología, pero no revolucionaria.

El revuelo continua con la nueva versión de la API de Microsoft para programar juegos, DirectX 10. En esta ocasión, unas declaraciones de uno de los fundadores de Epic, Tim Sweeney, a FiringSquad, ponen en tela de juicio si esta tecnología ciertamente representará un avance tan grande en la industria. “Unreal Engine 3 hará un uso extensivo de DirectX 10, así como muchos juegos nuestros y de nuestros socios, que saldrán en 2007. Pero, aparte del bombardeo publicitario, DirectX 10 no es tan diferente de DirectX 9, por tanto, principalmente, verás beneficios en el rendimiento con DirectX 10, en lugar de diferencias visuales llamativas”, expuso Sweeney.

Sin embargo, Tim también comenta que DirectX 10 “trae nuevas características que posibilitará a los desarrolladores optimizar los juegos de una forma más efectiva y así conseguir, de forma incremental, mejores gráficos y mejores tasas de cuadros por segundo”. De todas formas, sus últimas palabras fueron para aclarar su punto de vista; “el marketing alrededor de DirectX 10 excede la (buena pero no revolucionaria) realidad”.

fuente http://www.meristation.com/v3/des_noticia.php?id=cw4544bdc56a0fd&pic=PC&idj=cw427fdeaa24d5f&idp=
http://www.meristation.com/EPORTAL_IMGS/GENERAL/juegos/PC-Accion/5f/IMG-cw44f60cc00910f/ut07pc023pe.jpg

LEOMEN
diciembre 6, 2006, 11:44
yo opino q hay q esperar a q dx10 madure un poco mas ya q por el momento solo nvidia tiene una vcard de estas en el mercado, quien sabe como sera la dx10 de ati el año entrante. saludos...

Zetien
diciembre 7, 2006, 09:26
son increibles esas imagenes de crysis... a simple vista en dificil distinguir lo real...!!!