PDA

Ver la versión completa : [Direcx 10. => una novedad..]



AxeTouch
25/08/2007, 15:55
Hola:

Bue, dejo informacion q logre sacar de paginas Sobre el DIRECX 10 uno de los nuevos productos o utilidades para windows.


http://www.chilehardware.com/images/upload/dx10guia.jpg


Introducción

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)

************************************************** **

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)

************************************************** **

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.

*************************************************

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

*************************************************

Wallpaper rendereado en DX10

*************************************************

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.

****************************************

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.

*******************

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:

Hardocp (http://enthusiast.hardocp.com/article.html?art=MTA0NSwxLCxoZW50aHVzaWFzdA==)
Wikipedia (http://es.wikipedia.org/wiki/Windows_API)
Arstechnica (http://arstechnica.com/news.ars/post/20060628-7158.html)
Blog de Windows Vista (http://windowsvistablog.com/blogs/windowsvista/articles/447226.aspx)
chilehardware (http://www.chilehardware.com/)

Espero q les sea util o te agrado.

Suerte-.

:)

PD: Aclaro, el direcx es solo compatible con Windows Vista, (luego pongo mas info referido a el no funcionamiento de direcx 10 en windows XP.

Zagarth
03/09/2007, 11:47
Andará en XP??

Espero la info :)

AxeTouch
03/09/2007, 11:55
Andará en XP??

Espero la info :)

No por el momento, rumores dicen q esta version Beta del Direcx 10 esta solo para Windows Vista, es totalmente incompatible.

Suerte-.

Edith:

Aca te dejo algo q encontre sobre lo q no es compatible con XP


Lo ha anunciado Richard Huddy, responsable de relacciones con los desarrolladores ATI, quien ha afirmado que DirectX 10 saldrá en exclusiva para Windows Vista.

Ello significa que los usuarios de tarjetas gráficas 3D que quieran exprimir al máximo estas deberán migrar a la próxima versión del sistema operativo de Microsoft.

Una hábil estrategia que pretende obligar a los "jugones" a cambiar de sistema operativo.

Se me olvidaba, Windows Vista también soportará DirectX 9

Zagarth
03/09/2007, 12:06
Bah que mierda :dots:

Windows Vista del ****... Yo me quedo con mi XP modificado :D

http://img204.imageshack.us/my.php?image=miescritoriowi7.jpg

AxeTouch
03/09/2007, 12:14
Windows Vista del ****... Yo me quedo con mi XP modificado :D

http://img204.imageshack.us/my.php?image=miescritoriowi7.jpg

XD..

Lindo Theme.. :P

Suerte Capo.

el_marto23
03/09/2007, 14:19
che axe, tenes idea si las placas de video actuales van a ser compatibles con dx10? tengo una gf 7800gtx y no se si cambiarla ahora por una 8800 o esperar a ver q pasa.
Zagarth si andas por este th comentame mas o menos si estas conforme con arnet, tengo fiber y puede q en estos dias me cambie.
salu2

P.D.: aguante el tuneup :1:

TiTuS77
03/09/2007, 14:51
che axe, tenes idea si las placas de video actuales van a ser compatibles con dx10? tengo una gf 7800gtx y no se si cambiarla ahora por una 8800 o esperar a ver q pasa.
Zagarth si andas por este th comentame mas o menos si estas conforme con arnet, tengo fiber y puede q en estos dias me cambie.
salu2

P.D.: aguante el tuneup :1:

En Windows Vista el DX9 es emulado, nose que decirte como trabaja con las placas de video viejas, que la tuya es muy muy buena, pero por lo que lei el DX10 anda de 10, pero tenes que comerte el garron de tener que usar Chot### Vista y sinceramente ni da el Vista.
Kubuntu RLZ.

P.D.: KB particion aparte con Vista para Viciar a Full

AxeTouch
04/09/2007, 07:19
che axe, tenes idea si las placas de video actuales van a ser compatibles con dx10? tengo una gf 7800gtx y no se si cambiarla ahora por una 8800 o esperar a ver q pasa.

La verdad, hasta donde tengo sabido, esas placas ban a ser compatibles con vista.

Aca te dejo una linda pagina sobre placas..

http://www.gamesforwindows.com/en-US/Hardware/Pages/VideoCards.aspx

Y hasta mi entender saco, que toda placa compatible con vista, es compatible con DX 10.

Suerte-.

Zagarth
04/09/2007, 10:46
che axe, tenes idea si las placas de video actuales van a ser compatibles con dx10? tengo una gf 7800gtx y no se si cambiarla ahora por una 8800 o esperar a ver q pasa.
Zagarth si andas por este th comentame mas o menos si estas conforme con arnet, tengo fiber y puede q en estos dias me cambie.
salu2

P.D.: aguante el tuneup :1:

No, Arnet deja mucho que desear. O sea, la atención al cliente y velocidad con la que te habilitan el servicio es increiblemente rapida, pero el servicio en si... Para que te des una idea, se supone que tengo 640k, el modem dice 655k pero sin embargo hay momentos en los que me anda como 56k :dry:

Arnet es bastante pedorro en cuanto a velocidades.

Eso si, a diferencia de los otros servicios que andan a las chapas, si vos llamas a Arnet a solicitar el servicio te hablan bien y a la semana tenes modem y te estas riendo, Flash tarda como un mes :dry: y te tratan como el ****.

Volviendo a las placas:

Tengo entendido que todas las placas sean viejas o lo que sea andan en Vista, solo hay que ir a la pagina de nVIDIA Forceware y descargar drivers para Vista.
Yo tengo una GeForce 6200 y comprobe incluso en el CD driver de la placa que es compatible.

Es solo cuestión de driver :D

AxeTouch
04/09/2007, 11:13
tenes razon, por ej.. :P yo tmb tengo una 6200, y es compatible con vista, lo q pasa.. con vista esq las mother board no son compatibles...(algunos.)

Bue, no la desvirtuo, porq de Direcx pasamos al vista :P

Suerte-.

el_marto23
04/09/2007, 14:52
josha, no se donde habia leido q mi placa no iba a soportar dx10....cuando pueda instalo w vista y comparo los dx 9 y 10 con bioshock o algun otro juego grosso, la verdad q las fotos q posteaste impresionan.

OFF: Zagarth no te quejes de arnet, tengo fiber 2.5 y con los p2p descargo a max. 5kb/seg, descargas directas max 200kb promedio 100 :ranting2:

Zagarth
04/09/2007, 21:32
josha, no se donde habia leido q mi placa no iba a soportar dx10....cuando pueda instalo w vista y comparo los dx 9 y 10 con bioshock o algun otro juego grosso, la verdad q las fotos q posteaste impresionan.

OFF: Zagarth no te quejes de arnet, tengo fiber 2.5 y con los p2p descargo a max. 5kb/seg, descargas directas max 200kb promedio 100 :ranting2:

:dots:

Bueno, ponete Arnet 2.5 kb :dry:

DirectX 10 la verdad... Si no es compatible con XP SP2 no creo que nadie se compre Vista solo por esto... Y yo soy una de las personas que piensa que XP es mejor que Vista (o al menos que Vista no es tan bueno como podría)