El pasado 12 de Agosto NVIDIA lanzó una nueva campaña denominada The Force Within, en ella pretenden potenciar todo lo que puedan de sus nuevas tecnologías aplicadas a sus tarjetas de video GeForce, entre ellas se encuentran CUDA, SLI, 3D Stereo y PhysX. Esta última la revisaremos en este artículo en la gran mayoría de sus variantes.
PhysX no debe ser algo novedoso o algo nuevo para ustedes puesto que sabemos de PhysX desde que una empresa pequeña llamada AGEIA introdujo ese concepto, muchos posiblemente se rieron de su idea y por sobretodo cuando lanzaron al mercado sus tarjeta aceleradoras de fisicas a un precio que parecía «irrisorio», en ese entonces los comentarios eran que «tarde o temprano ATI o NVIDIA comprarían a AGEIA» dado que tener una tarjeta PCI sólo para físicas y que en ese entonces con suerte 1 o 2 juegos tenían el soporte, además que ni siquiera sus propios drivers funcionaban bien, era bastante «descabellado» por decirlo menos, pues el comentario se materializó y este año el 4 de Febrero NVIDIA compró a AGEIA finalmente.
Mucho se especulaba que iba a pasar con el desarrollo del API de AGEIA para fisicas, pero finalmente NVIDIA decidió darle un uso y ni mas ni menos que utilizando 2 de sus regalones, CUDA y GeForce. Asi que desde el 12 de Agosto de este año cualquier tarjeta de video NVIDIA que soporte CUDA (GeForce 8 en adelante) tendrá soporte para PhysX sin tener que instalar ninguna tarjeta adicional.
PhysX: Del Concepto al Hecho
Corrían los años 2005 cuando una pequeña compañía llamada Ageia aparecía en el mapa. Su propuesta era mejorar la física presente en los juegos y en ciertas aplicaciones de escritorio, quitándole esta responsabilidad al CPU y confiándosela a un procesador dedicado bautizado PPU (Unidad de Procesamiento de Físicas).
Bajo esta propuesta desarrollaron su SDK para juegos que licenciaron por primera vez a Sony para su futura consola llamada PlayStation 3. Al mismo tiempo comenzaron a trabajar en el hardware que proporcionaría el soporte para esta aceleración.
Fue así como nació el proyecto, pero la ruta no era fácil. Introducir un nuevo componente con un costo no menor debía ser ampliamente justificado. Además tenían que influir sobre los desarrolladores, demostrando sus virtudes y finalmente debían desarrollar un soporte adecuado para la cambiante industría de gráficos.
Lamentablemente el mundo no estaba preparado para su producto, y ellos tampoco. Demoras en la entrega de drivers, poca optimización, poca adherencia por parte de los desarrolladores y reticencia del lado de los jugadores fueron algunos de los obstáculos de su corto camino.
Pero la idea era poderosa, más aún cuando tanto AMD y posteriormente INTEL, anunciaban que el futuro de la computación iba para el lado de los procesadores específicos integrados trabajando sinérgicamente.
Fue durante este deambular, sin pena ni gloria, apareció NVIDIA y como quién compra una pastilla de menta, desembolsó su par de milloncitos y compró Ageia.
Los planes de NVIDIA eran integrar esta solución de aceleración de físicas a sus tarjetas gráficas, que a estas alturas se llaman GPGPUs.
Tomaron los planos recién adquiridos, los juntaron con sus tarjetas gráficas y le sumaron el factor CUDA (Compute Unified Device Architecture). Para no complicar mucho la historia y ponerme redundante como mi abuela cuando cuenta algo, diremos que CUDA es un compilador que permite utilizar la enorme potencia de los GPUs no sólo en generar gráficos, sino que en tareas paralelas, como por ejemplo calcular las físicas de un juego.
La guerra que casi fue.
Las físicas son un campo que ya había sido desarrollado por otros anteriormente. Havok creadora del potente motor tras títulos como Half-Life 2 y Dead Rising dominaba este campo antes de la irrupción de Ageia, pero no contaban con soporte de hardware propietario.
Tan pronto NVIDIA lanzó la noticia de su última compra, Intel y AMD se lanzaron como aves de rapiña a la caza de Havok, la única capaz de contrarrestar el poder del nuevo equipo.
Intel finalmente compró Havok Inc.
Al mismo tiempo, NVIDIA anunciaba que su compilador CUDA sería exclusivo para los chips verdes. Esto obligó a AMD a firmar un acuerdo con INTEL para licenciar su flamante y recién adquirido motor de físicas.
Dos días después, NVIDIA se retracta y hace público su compilador, para que cualquier programador use la potencia de las nuevas generaciones de GPUs, sin importar si eran de color “Verde” o “Rojo” y de paso posicionar fuertemente su tecnología.
NVIDIA PhysX: Modos y Efectos Colaterales
Como en toda configuración uno sacrifica algunas cosas, en algunas uno sacrifica dinero, en otras espacio, etc… en este caso veremos el costo de tener un sistema con soporte para PhysX y en qué repercute si cambiamos o mejoramos nuestra plataforma.
Tenemos 3 modos de calculo de fisicas para nuestras aplicaciones, bueno al menos NVIDIA nos da 3 modalidades:
- No Acceleration: Sin Aceleración en español, significa que todo el peso de calcular las fisicas se las lleva nuestro CPU, asi que de preferencia algún Dual Core, Tri-Core o Quad-Core y más aún con algo de overclock sino a sufrir…
- GeForce PhysX: Consiste en que nuestra tarjeta de video NVIDIA GeForce es la encargada de procesar los calculos de fisicas, pero a su vez tenemos algunas opciones.
Single Card: Si poseemos solamente 1 VGA instalada, será ella quien aparte de cargar el juego calculará las fisicas, por ello se recomienda utilizar este mecanismo si disponemos de una GeForce 9600GT hacia arriba.
Modo SLI: Como tenemos 2 tarjeta de video corriendo en modo SLI, ambas se reparten la carga del juego asimismo del calculo de fisicas.
Multi GPU: Quizás lo que posiblemente sea más utilizado debido a que no es necesario tener un sistema SLI para realizar esta configuración, o sea, no necesitamos de forma exclusiva una placa madre basada en chipset NFORCE SLI, sino que basta con que nuestra placa madre posea 2 sots PCIe 16X para poder instalar nuestras VGAs en ellos y listo, con esta configuración dejamos una VGA como primaria (la mas poderosa) y la otra queda para calculo de fisicas (desde una GeForce 8 en adelante).
- AGEIA PhysX: Solo si poseemos una tarjeta PPU de AGEIA.
Hay que hacer mención en algo, si estamos utilizando Windows Vista (x86 o x64) y queremos utilizar el modo MultiGPU para el calculo de las fisicas es necesario realizar un paso extra. Para poder configurar este modo debemos conectar la otra tarjeta de video (la que calculará las fisicas) a otro monitor y luego desde Windows extender el escritorio a ese monitor, de lo contrario no podremos configurar Multi GPU para PhysX.
Esperamos que NVIDIA pula sus drivers para que los usuarios de Windows Vista no tengan que realizar este procedimiento, ya que bajo Windows XP no es necesario realizarlo. En nuestro caso, como nuestro monitor posee una entrada VGA y otra DVI utilizamos ambas, cada una para cada tarjeta, pero resultará molesto para quienes no cuenten con este tipo de monitores o con 2 monitores.
Otra cosa que nos dimos cuenta, es que cuando extendemos el escritorio para configurar el modo Multi GPU, mientras menor sea la resolucion del otro monitor mas FPS obtendremos finalmente. Nos dimos cuenta de esto a pesar que en el otro escritorio (el extendido) solo se veía el wallpaper, mientras menos era la resolución mayores eran los FPS, obviamente manteniendo los mismos y la misma cantidad de efectos de fisica durante los juegos.
Otra cosa que hay que mencionar es sobre el consumo, recordemos que al momento de utilizar el modo Multi GPU o el Modo SLI necesitaremos de otra tarjeta de video con lo cual incrementaremos el consumo de nuestro sistema, si desde un principio estamos utilizando una tarjeta de video relativamente poderosa, o sea de una GeForce 8800GT hacia arriba, desde ya necesitaremos una fuente de poder que sea capaz de mantener 2 tarjetas de video trabajando a la par. Considerando en el peor de los casos que queramos utilizar una GeForce 8600GT para el calculo de fisicas, con una fuente que posea sobre 36A en la línea de 12V y con una potencia igual o superior a los 550W no tendríamos problemas en ello.
Ahora si poseemos una 9800GTX o superior y a eso le queremos agregar de una GeForce 9600GT en adelante, sabemos que por lo bajo una fuente de poder de 650W que posea en la línea o líneas de 12V combinadas un total igual o superior a los 40A para no tener que preocuparnos que nuestra fuente de poder sea el impedimento y causal de inestabilidad. En nuestro caso utilizamos una fuente de poder de 700W con PFC Activo y 4 líneas de 12V con 15A cada una, por lo que no nos preocupamos en demasía al utilizar la GeForce GTX 260 junto a la GeForce 9600GT.
Plataforma Utilizada
Hardware:
INTEL E6600@3Ghz (333×9)
MSI P45 Platinum
4x1GB Corsair PC6400 @ 800Mhz 4-4-4-12
NVIDIA GeForce GTX 260
MSI GeForce 9600GT OC 1GB
Palit GeForce 9600GSO Sonic 768MB
Western Digital 120GB SATAII
FSP Epsilon 700W Active PFC
Software:
Windows Vista Ultimate x64 + SP1
NVIDIA Drivers v177.83
PhysX Drivers v8.08.01
Futuremark 3DMark Vantage v1.01
Unreal Tournament v1.2 + PhysX Mod Pack
Ghost Recon Advanced Warfighter 2 v1.05
Warmonger v2.1
Metodología de Pruebas
Para testear el uso de Fisicas en los juegos utilizamos 4 configuraciones de Hardware, en primer lugar se utilizó solamente al CPU como calculador de fisicas, luego solamente la GeForce GTX 260, posteriormente a la GeForce GTX 260 se le sumó una GeForce 9600GT exclusiva para calculo de físicas y finalmente se utilizó una Geforce 9600GT mas una GeForce 9600GSO exclusiva para el calculo de físicas.
Todos los juegos fueron testeados con Filtros y Calidad al máximo, asimismo bajo una resolución de 1680×1050 (utilizando la GTX 260 como VGA primaria) y 1440×900 (utilizando la 9600GT como VGA primaria). Los juegos fueron corridos en modalidad In Game y medidos sus FPS gracias a FRAPS, siendo los valores graficados el resultado del promedio de 3 corridas distintas, procurando en cada una realizar la misma cantidad de movimientos y trayecto durante el juego.
Resultados: GeForce GTX 260 + 9600GT (fisicas)
Pasaremos en estas paginas a revisar qué beneficios nos trae el tener una tarjeta de video dedicada a procesar los calculos de fisicas de los juegos o aplicaciones, veremos si realmente vale la pena o son sólo númeritos inflados para un gráfico comercial.
El test sintético más nuevo de la familia de Futuremark, como pudimos sospechar el paso de utilizar nuestro CPU como calculador de fisicas a la GeForce GTX 260 es notable, ahora hay que hacer notar que posteriormente cuando añadimos una tarjeta dedicada solo para fisicas y dejamos a nuestra GeForce GTX 260 dedicada exclusivamente de los juegos la cosa cambia, ya que en nuestro caso la GeForce 9600GT no es tan poderosa como la GTX 260 por ende el puntaje final baja levemente. De todas formas es un gran paso de 7000 puntos a 9×00 puntos
Sin duda uno de los mejores juegos de Guerra a mi gusto, ya de su versión anterior (GRAW) que este juego soporta el API de AGEIA, en la gráfica vemos como el paso de utilizar nuestro CPU a utilizar alguna combinación con nuestra tarjeta de video brinda una mayor cantidad de FPS. Si le añadimos una tarjeta de video dedicada solamente para fisicas obtenemos otro bons de extra FPS, por ende hasta el momento todo bien con PhysX en el GPU.
Unreal Tournament uno de los mejores FPS, en esta oportunidad le instalamos el PhysX Mod Pack que otorga NVIDIA con lo cual agregamos 3 nuevos mapas (2 CTF y 1 Deathmatch), como soy loco por los CTF (Capture the Flag o Capturar la Bandera) utilicé el mapa Lighthouse PhysX. Muros que se derrumban, tarros con combustible que explotan y destruyen muros, vidrios caerse y romperse, son algunas de las cosas que podemos disfrutar si tenemos Physics Habilitado. Nuevamente el pasar de CPU a GPU hay un notable y marcado aumento de los FPS, además se repite el nivel de FPS ganados al momento de instalar una VGA dedicada para fisicas.
Uno de los juegos incluidos en el GeForce Pack de NVIDIA es Warmonger, un FPS en donde a todo lo que le disparemos está manejado en base a calculos de fisicas, bastante entretenido con mapas bastante buenos. A ratos pareciera que estamos jugando FEAR por el nivel de detalles en los objetos o en el mundo, el trabajo de shaders es notable, pues bien nuevamente se notó el hecho de pasar de CPU a una VGA. Recordando que estamos jugando a 1680×1050 con filtros activados y detalles al máximo.
Resultados: GeForce 9600GT + 9600GSO (fisicas)
Para este caso no quisimos correr 3DMark Vantage debido a que ocurre lo que sabemos, el puntaje sube y si agregamos otra tarjeta de video, que en este caso es similar a la principal (9600GT) no hay una mejora notoria. Mencionar además que para estas pruebas la resolución se configuró en 1440×900 con todos los detalles al máximo y los filtros explicados en cada juego.
No tenemos mucho que agregar, los graficos hablan por sí solos el hecho de pasar a utilizar nuestro GPU como elemento de cálculo de fisicas le brinda una mejor performance a la experiencia de juego lo cual agradecemos, si además le sumamos el hecho que podemos incorporar o añadir una segunda tarjeta de video dedicada exclusivamente a fisicas nuestra pobre VGA no se resiente tanto y puede trabajar de forma mas holgada cargando las instrucciones del juego.
Apreciaciones Finales
Hablar y comenzar diciendo que PhysX o las fisicas en los juegos son la panacea sería mentirles o mentirnos a nosotros mismos, si bien es cierto desde que apareció AGEIA en el mercado metiendo bulla con su PPU PhysX hasta ahora poca variedad de juegos han adquirido esa «utilidad» bueno recien este año AGEIA fué adquirida por NVIDIA un gigante en el tema de las tarjetas gráficas y con gran peso en el mercado de gamers y entusiastas quienes a pesar de tener el poder económico como para adquirir las escasas y costosas tarjetas PPU de AGEIA no lo hacían puesto que no resultaba en una ganancia notoria con respecto a jugar con o sin ella.
Pues bien ahora el escenario cambió y han aparecido algunos otros títulos nuevos con soporte para PhysX y quedan algunos otros por llegar, tomando en cuenta la ventaja que ofrece NVIDIA de soportar PhysX de forma nativa en sus GPUs el mercado dejó de ser de unos cuantos miles a unos cuantos millones con lo que los desarrolladores de juegos posiblemente tomen mas en serio esto «de las fisicas» y saquen mas provecho de ello.
Sobre si es beneficioso o no eso lo puede evaluar cada uno por si mismo, ya que hasta el momento muy pocos juegos toman provecho de esta tecnología e invertir en una tarjeta extra o en una VGA potente solamente para liberar a nuestro CPU de un calculo que incrementa el nivel de explosiones o hace que las cosas caigan o se destruyan «mas bonito» es un tema estético que a muchos les puede parecer importante a la hora de jugar. Otra cosa que se puede tornar a favor o en contra es la posibilidad de utilizar otra tarjeta de video GeForce dedicada solamente para el calculo de las fisicas dejando a tu tarjeta principal netamente para que trabaje cargando y calculando las instrucciones del juego de forma normal, decimos en contra mas que nada por el costo de tener otra tarjeta de video extra funcionando.
Sin embargo no podemos obviar que esto es solamente una jugada de uno de los participantes del mercado, ya que hay que esperar a que dice AMD e INTEL en este ámbito, AMD sabemos que se irá por Havok para el tema de las físicas e Intel también, por lo que la pelea será dura para NVIDIA y PhysX. Otra cosa es que DirectX 11 se lanzará dentro de 1 año a lo mucho e incluirá un nuevo Shader denominado Compute Shader lo cual significará que se facilitará y aprovechará de mejor manera el cálculo en los Shaders de las VGAs por lo que posiblemente los desarrolladores de juegos piensen a futuro y desarrollen en base a esa nueva utilidad programando el calculo de fisicas en los Shaders gracias al Compute Shaders y no en base a la API de NVIDIA.
Se viene pesado el terreno para NVIDIA y su PhysX, al menos tienen tiempo para hacerlo un estandar y esperar a que muchos desarrolladores de juegos importantes le tomen el peso y lo incluyan en sus juegos de manera que finalmente tengamos algo definido y no una eterna promesa.