Blog gratis
Reportar
Editar
¡Crea tu blog!
Compartir
¡Sorpréndeme!
 
 
BND|MOD [Reviews, BenchMarks, Informes]
Lo último en tecnología encontralo aquí
Buscador
Blog   Web

Secciones
» Inicio

Enlaces
» MaximoPC
» XtremeSystems

MaximoPC News

Nube de tags  [?]

« Blog
 
30 de Agosto, 2007 · Informe

[INFORME] Dx9 Vs Dx10 || DX10: Mejoras

Elsitio Shacknews tiene nuevos screenshots (capturas en juego) de "Age ofConan", un título basado en la nueva API de Microsoft, DirectX10. Sinembargo, el juego también es compatible con DirectX 9.

Entre lasimágenes más notorias se encuentran las dos primeras, donde se observacómo se gana con DirectX 10 un mayor número de elementos en escena ymás detalle en el relieve de los objetos (Shader Model 4.0), limitantesbásicas de DirectX 9.

DirectX 9.0c (derecha)
DirectX 10 (Izquierda)



Fuente: ShackNews

|||||||||||||||||||||||||||||||||||||||||||||||||| ||||||||||||||||||||||||||||||

¿Qué cambios traerá DirectX 10?

Introducción
Unade las mayores evoluciones en la industria de los juegos esta porvenir. El sólo hecho de que Microsoft vaya a lanzar un nuevo sistemaoperativo es de por sí un evento mayúsculo, pero esta vez no vienesolo, porque junto con su nuevo Windows Vista, la empresa de Redmondintroducirá 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 bibliotecasdinámicas) que permiten que una aplicación corra bajo el sistema operativo Windows. (generalmente
Originalmente,se incluyó DirectX en Windows para que los desarrolladores pudiesentener acceso a varios aspectos de una tarjeta gráfica, tarjeta desonido y dispositivos de entrada (mouse, teclado, joypad, etc) sin lanecesidad de programar individualmente para cada hardware .
DirectXesta compuesto de varios sub API, entre las que se incluyenDirectSound, DirectInput y DirectMusic. El componente que ha tenidomayor evolución ha sido Direct3D, debido al gran desarrollo de lastarjetas 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
Ahoraque ya sabemos lo que es un API podemos imaginarnos la importancia deDirectX 10, pero... ¿Es sólo otra versión de DirectX? ¿Qué grandesmejoras específicamente trae? ¿Es una movida de Microsoft para quetodos 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?
ElDX10 es otra versión de DirectX, eso está claro, pero es necesariocontrastar sus atributos con los de su antecesor, DX9, para poderentender la importancia del cambio. Mal que mal, DX9 apareció en el2002 y aunque en su momento fué un agran adelanto, en el intertanto hanaparecido tecnologías nuevas que lo han ido haciendo paulatinamenteobsoleto.

DirectX 9 Overhead

Unade las limitaciones mas grandes de DX9 es el "Object Overhead", unacondición que crea un cuello de botella para los desarrolladores dejuegos. Debido a lo anterior, es necesario plantear un API que corrijaeste problema.
¿Quéqueremos decir con "Object Overhead"? En palabras simples, DX9utilizaba ciclos de procesador para completar tareas necesarias parahacer renders antes de ser enviados a la tarjeta de video. Cuando serenderea un juego, la aplicación primero debe llamar al API y luego elAPI llama al Driver antes de poder llegar a tu GPU. Estas llamadas sonmanejadas por el CPU y eso utiliza recursos muy valiosos y limitados,pero además alarga el camino que debe recorrer la información para queel proceso sea exitoso. Ambas características convierten al ObjectOverhead en un importante cuello de botella.



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

Paradar una idea de la limitación anterior, pensemos poe ejemplo en unjuego cuya acción transcurra en un bosque. Sabemos que en un bosquereal hay miles de arboles y arbustos distintos, pero debido a lalimitación de DX9, la mejor representación de un bosque que el APIactual puede ofrecer consiste en la repetición de un mismo árbol conmínimas variaciones entre uno y otro. Es una salida ingeniosa parasubsanar 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?

DirectX10 nos permitirá poner más objetos únicos en un frame lo que nosmostrará ambientes más realistas y más inmersivos. Aún podremosencontrar limites en cuanto a cantidad de objetos pero ya no será elAPI el factor limitante sino sólo el GPU y la imaginación de losdesarrolladores.
Conla desaparición del Overhead veremos además una reducción en el tiempode ejecución de los juegos. Calculen que actualmente DirectX 9 y eldriver producen el 40% del tiempo de ejecución, DirectX10 reducirá a lamitad esa proporción.
Elhecho de que los cálculos que antes pasaban por el CPU ahora puedanejecutarse directamente en el GPU, liberará una cierta cantidad depotencia en la plataforma, pero además permitirá ejecutar en el GPUcálculos no necesariamente relacionados con gráficos, como son lasaplicaciones de GPGPU de entre las cuales destaca el cálculo de físicas.
Lasiguiente diapositiva explica, según el punto de vista de Nvidia, lamejora que se producirá en los cálculos físicos, debido más que nada aque estos cálculos son un proceso altamente paralelizado, ideal paraaprovechar la fuerza bruta de un GPU. Como podemos ver de las 3 etapasdel proceso del calculo de físicas el que menos paralelismo tiene es deun 70%.




Limitaciones de un Pipeline Fijo
Lasiguiente limitación de DirectX 9 y las GPUs actuales es la naturalezade sus pipelines, que es orientado a una función fija. En una GPU losProcesadores de Vertex constituyen un conjunto separado de losProcesadores de Pixeles, y dependiendo de la escena puede darse el casoque 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.



¿Como soluciona esto DirectX10?

Nuevos Shaders de Geometria
Unade las nuevas características de DirectX 10 es una nueva etapa en elpipeline este se llama Shader de Geometría. Este nuevo shader seincorpora a la idea de un pipeline unificado y será una nueva etapa eneste componente. La gracia del Shader de Geometría es que ayudará atener escenas mas complejas, al permitir que el desarrollador del juegoa tome formas simples (puntos, líneas o triángulos) y generar objetoscomplejos a su alrededor. Este nuevo atributo permitirá nuevos einteresantes efectos como son el el Mapping Displacement en tiempo realy Motion Blur.

Stream Out
Estaes una función nueva también en la arquitectura de DirectX 10 y seencuentra asociada a los Shaders de Geometría. El Stream Out permiteguardar información de los Vertex shaders o de los Geometry shaders enel buffer y habilita la opción de múltiples pasadas en el Geometryshader.

Arquitectura Unificada

Comodijimos antes, actualmente los Pixel y Vertex shaders existen enconjuntos separados. Sin embargo, para ser compatible con DirectX 10 elhardware deberá pasar a ser completamente unificado. Esto significa quecualquier shader unificado debe ser capaz de funcionar como VertexShader, Pixel Shader o Geometr Shader indistintamente y según laocasión lo requiera. De este modo ya no habrá tarjetas con X pixelshader e Y vertex shaders. Simplemente tendrá N shaders unificadoscapaces de hacer de todo.
Loanterior permitirá que dependiendo de la escena, podamos usar toda lapotencia de la VGA para procesar vértices o bien pixeles, evitandotener recursos desaprovechados y redoblando a cambio los recursosdisponibles para la operación en curso.



Comparativa entre arquitectura DirectX 9 y DirectX 10




Beneficios para Gamers
Mayor nivel de detalles
Paradesplegar una imagen, el API interpreta y ejecuta las instrucciones conque un desarrollador le "describe" una figura. Con DX10 estainterpretación y ejecución resultará en formas más detalladas yrealistas, sin nececidad de complejizar la manera como se caracterizael objeto. Veamos por ejemplo el nivel de realismo en la cara dealgunos personajes en Half Life 2 (DX9) y Crysis (juego DX10 porvenir).
Fotografía 1: DirectX 9 (Half Life 2)



Fotografía 2: DirectX 10 (Crysis)


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

Veamos otro ejemplo, en donde una misma figura es interpretada y procesada por DX9 (a la izquierda) y por DX10 (a la derecha)



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


Procesamiento de Sombras
Lasiguiente imagen nos muestra coloreada en verde la proyección que haceuna figura para generar la sombra, característica que evidentementecambia según el origen de la luz. En DirectX 9 la sombra es generada enel CPU, reduciendo el rendimiento del sistema en conjunto con cadanuevo personaje con sombra que aparezca en la imagen. En DirectX 10, lasombra puede ser generada y rendeada completamente en la GPUaprovechando su capacidad de hacer cálculos en paralelos con enormepotencia.



Escenas mas complejas y ambientes mas complejos

Elsiguiente ejemplo servirá para ilustrar el realismo que DX10 puedeimprimirle a un escenario. Aunque el ejemplo está algo exagerado yhemos visto a DX9 desplegar escenas de mucho mayor calidad, al menos eneste caso la exageración contribuye a hacer más evidente el cambio.
Wallpaper rendereado en DirectX9



Wallpaper rendereado en DX10



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


Escenarios dinámicos

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



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


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



Conclusión
Comohabrán podido comprobar, la evolución del API no es una simple medidade 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 sehace" también. Esta reubicación y reorganización de la cadenaproductiva permitirá salvar obstáculos que estaban estrangulando eldesarrollo de los juegos e impedían dar el salto al siguiente nivel.
Sinembargo, lo que se ha cubierto en este artículo se enfoca más que nadaen los potenciales usos del API, pero falta comprobar lo realmenteimportante: Qué y cómo harán los fabricantes de GPU para implementar yexplotar estar características. Y eso, queridos usuarios, es unabatalla que nos dará muchas horas de entretención para los mesesvenideros.

Fuente:
http://www.chilehardware.com/guias_g...-20061024.html

Fuentes Originales:
Hardocp
Wikipedia
Arstechnica
Blog de Windows Vista
Palabras claves
publicado por bndmod a las 17:36 · 1 Comentario  ·  Recomendar
 
Más sobre este tema ·  Participar
Comentarios (1) ·  Enviar comentario
te hakearon tu blog, y ni cuanta te das,,,
publicado por anonimo, el 06.05.2008 02:57
Enviar comentario

Nombre:

E-Mail (no será publicado):

Sitio Web (opcional):

Recordar mis datos.
Escriba el código que visualiza en la imagen Escriba el código [Regenerar]:
Formato de texto permitido: <b>Negrita</b>, <i>Cursiva</i>, <u>Subrayado</u>,
<li>· Lista</li>
FULLServices Network | Blog gratis | Privacidad