Jump to content

Nuevos modelos de física en entornos virtuales


Guest

Tarjeta PhysX de Ageia, cuando la física es lo que importa Ya comentamos su salida hace un tiempo. En aquel momento, había muchas dudas sobre el futuro de este hardware, pero hoy en día parece que se va asentando poco a poco, si bien son pocos los títulos que utilizan sus características. La tarjeta PhysX de Ageia se conoce como una PPU (Physics Process Unit). Al igual que las GPUs (Graphics Process Units) eliminaron los cálculos sobre diversos aspectos de la generación de gráficos en las CPUs convencionales (Intel o AMD), siendo NVIDIA con su serie Geforce la iniciadora de este importante paso, las PPUs liberan a la CPU de los cálculos sobre los elementos físicos que se contemplan en un producto de software de entretenimiento, sea un simulador, un juego de acción, de automóviles, etc, y en donde una representación real de la física en el mundo virtual contribuye a mejorar el realismo. En el caso de un simulador, hablaríamos por supuesto de aspectos tan vitales como el modelo de vuelo, el comportamiento de la meteorología, el modelado del armamento y su física de vuelo, su capacidad de destrucción en base a su potencia, y el cálculo del modelo de daños de un objetivo, así como la generación de las partículas en el modelo destruído basándose en su composición, punto de impacto, y estructura. Esto querría decir, por ejemplo, que un puente de madera tendría un modelo de fragmentación frente a un arma determinada muy distinto de un puente de acero, y también en el diseño del puente en sí. El propio comportamiento de la aeronave ganaría mucho realismo con una física que se aproxime todo lo posible a la realidad. 

Perfil AlarPara calcular la sustentación generada por el ala de una aeronave por unidad de tiempo de forma realista se requiere una gran potencia de cálculo

El mundo es básicamente física desde un punto de vista del comportamiento de entidades que interactúan entre sí. Por lo tanto, una tarjeta PPU, como la PhysX de Ageia, cuya capacidad es exclusivamente generar los cálculos sobre dichas interacciones, permite un mundo mucho más real. No es necesario programar un modelo de daños determinado en una aeronave, o, dicho de otro modo, no tenemos que pensar cómo afecta el impacto de un proyectil a cada punto de una aeronave. Si introducimos un modelo estructural basado en un material físico, y en un punto de dicha estructura se modela un daño de un arma, el resultado se calculará en base al arma, su poder explosivo, su índice y ángulo de penetración, y el material que recibe el impacto, generando unos daños que serán consecuentemente mucho más reales. Además, esos daños, en caso de cambiar la aerodinámica de una aeronave, afectarán al modelo de vuelo sin necesidad de tener que recalcular constantemente un modelo ya programado. En su lugar, la tarjeta PPU puede darnos los resultados de la capacidad de vuelo y maniobra de la aeronave en función de la física aplicada al daño estructural de dicha aeronave, el cual se sumará al cálculo original para un modelo limpio, produciendo un efecto mucho más realista que los modelos precedentes. Todo esto aplicable, por supuesto, a cualquier cambio en la aeronave, como una extensión de flaps o una salida del tren de aterrizaje. Ahora ya no habrá que presuponer que al sacar flaps se genera más sustentación. Dicho resultado estará implícito en el modelado de la aeronave, por lo que obtendremos un índice de sustentación mayor gracias al cálculo realizado por la PPU. Todo esto es aplicable a un submarino, un tren, etc. Imaginemos un submarino cuyo comportamiento no se basa en suposiciones de índice de flotabilidad, positiva negativa o neutra, en base a unos valores predeterminados, sino en función de la salinidad del agua, su temperatura, el número, disposición, y situación de los sistemas de inmersión, incluso de la tripulación, etc. 

ASUS PhysXASUS ya implementa la tecnología PhysX en sus propias tarjetas

Actualmente, la empresa Ageia ya no cobra ningún tipo de comisión ni obtiene ningún beneficio del hecho de licenciar su librería de funciones físicas a terceras empresas, en este caso las desarrolladoras. De tal modo que cualquier producto de software que desee emplear las funciones de física de la tarjeta PhysX puede hacerlo libremente, sin tener que pagar nada por derechos de uso. Esta maniobra, que parece realmente interesante, tiene como finalidad promocionar el uso de esta tarjeta y convertirla, o al menos intentarlo, en un estándar. Si bien la idea es buena, tanto ATI como NVIDIA trabajan en sus propios modelos de física implementada por hardware, que sin ser quizás tan sofisticadas, puede cambiar las tornas por el peso de estas empresas. Es algo que sin duda se verá con el tiempo. 

AgeiaEl futuro de esta tecnología parece claro, el de esta tarjeta, no tanto

Es obvio que una PPU es una gran idea de la que se verán beneficiadas los mundos virtuales de los videojuegos. Y en el caso de la simulación, donde la física cobra tanta importancia, y en la que los cálculos son extremadamente complejos, es un camino a seguir. Esperemos que se cumpla. De todas formas, no abandonamos en este artículo este tema, tal como veremos a continuación. Tarjetas DirectX 10 Cuando se escriben estas líneas, acaba de ponerse a la venta, a un precio sin duda estratosférico como ya nos tienen acostumbrados, la primera tarjeta compatible con DirectX 10. Posiblemente en muy poco tiempo veremos nuevos modelos. La primera en llegar es la tarjeta gráfica NVIDIA Geforce 8800GTX, y su hermana menor, Geforce 8800GTS, y según las pruebas que hemos visto, supera ampliamente en rendimiento a tarjetas de la generación anterior, en algunos casos de una forma muy evidente. Sin duda todo indica que estamos ante una tecnología que va a dar mucho juego, nunca mejor dicho. Estas nuevas tarjetas incorporan por hardware la última versión de la librería gráfica DirectX, versión 10. DirectX es, recordémoslo, un conjunto de librerías gráficas que permiten a los desarrolladores poder escribir programas mediante un conjunto de funciones estándar, las cuales sirven de nexo entre el software y el driver de la tarjeta, el cual traduce dichas instrucciones en sentencias ejecutables por el  hardware al que están asociadas. La versión 10 de DirectX ha supuesto una reescritura del código desde cero prácticamente. Esto permite obtener una ventaja y una desventaja: por un lado, el código de las funciones ha sido optimizado y ahora es más eficiente. Por otro lado, en el aspecto negativo tenemos que vivir la necesidad de traducir las sentencias DirectX 10 a DirectX 9 en aquellos programas que estén escritos para la versión 9. Hoy por hoy, la práctica totalidad del software, si exceptuamos, claro está, aquellos productos que utilizan otra conocida librería, OpenGL, como ocurre con la saga IL2 de Oleg Maddox (de forma nativa, se puede emplear DirectX pero entonces se sufre una traducción de las funciones). 

8800GTXLa Geforce 8800GTX es la primera en soportar DirectX 10 por hardware

Un ejemplo de simulador diseñado para DirectX 10 es Flight Simulator X. Aunque se puso a la venta de manera que fuese compatible con DirectX 9, en realidad se está sufriendo una traducción de las sentencias de DirectX 10. Esto ha permitido comprobar cierta mejora de rendimiento, además de calidad visual, en ordenadores ejecutando versiones de DirectX 10 sobre Windows Vista. El problema es que el propio Vista consume gran cantidad de recursos, por lo que de nuevo perdemos esa ventaja, a no ser que se posea un PC de última generación con, al menos, dos gigas de RAM. Otro ejemplo, esta vez en un juego de acción, es Crysis, desarrollado por el mismo equipo que creó el notable Far Cry. Crysis deja claro que DirectX 10 es realmente novedoso e implementa novedades que permiten imaginar cuál va a ser el futuro inmediato de estas librerías y de este hardware. Sin duda, la Geforce 8800GTX inaugura una nueva época en lo que a gráficos se refiere. Siempre que se disponga de una fuente de alimentación de al menos 550 vatios (mejor 600) y de un PC sobresaliente claro. Y de unos seiscientos euros, coste aproximado de salida, un precio que sin duda no es para todos los bolsillos, incluido el de este sufrido redactor. Obviamente irán apareciendo tarjetas más baratas también compatibles y esta misma irá bajando de precio, sobre todo cuando su competidora, ATI, comience a presentar su propia gama a principios de 2007. Pero no todo lo bueno acaba aquí, y hay sorpresa, e importante al menos desde nuestro punto de vista. La Geforce 8800GTX implementa, directamente en su hardware, un nuevo sistema de cálculo de física por hardware, que NVIDIA ha denominado, de forma muy llamativa, Quantum Physics. No se ha hablado mucho de ello, y en la propia web de NVIDIA aparece en un renglón con un pequeño texto, en el que se alude a las unidades de Shaders que incorpora la tarjeta como las responsables del cálculo de físicas; Es decir, no se implementa un hardware específico para el cálculo de la física, pero sí se reutiliza parte de la tarjeta con este fin. Tal como indica el apartado técnico de la tarjeta:

NVIDIA Quantum Effects™ Technology

  • Advanced shader processors architected for physics computation
  • Simulate and render physics effects on the graphics processor

 

Es decir, el uso de shaders se emplea para computar efectos físicos, y se simulan y renderizan los efectos físicos en la tarjeta gráfica. En nuestra opinión, las prestaciones gráficas de la tarjeta, que son excelentes sin duda, están tapando lo que nosotros creemos es una revolución en el mundo del hardware para PC, y no lo olvidemos, una clara competencia a la tarjeta PhysX deNVIDIA. La razón de esta afirmación es que tenemos, por primera vez, una GPU que incorpora de forma básica el modelo de trabajo de una PPU en la misma circuitería. Esto quiere decir que, cuando un simulador o cualquier software de entretenimiento represente visualmente un hecho físico, desde la caída de una hoja hasta la dinámica de la explosión de un misil sobre un caza y cómo éste se ve afectado, todo ello será reproducido visualmente por la GPU según los datos que le suministra la PPU, pero además esa visualización será muy realista, ya que el proceso será calculado paso a paso por la PPU. El hecho de que ambos elementos aparezcan en la misma circuitería de la misma tarjeta deja claro que se está, al parecer, en el inicio de un proceso de fusión de ambas tecnologías. De este modo, en el futuro probablemente veamos sistemas que hipotéticamente no podrán llamarse simplemente GPUs o PPUs, sino directamente, GPPUs. Quizás la 8800GTX es ya la primera GPPU en el mercado, aunque dicha denominación no exista como de forma oficial. ATI por su parte está implementando su propio modelo de físicas en sus nuevas tarjetas a presentar a principios de 2007, por lo que es de esperar una importante competencia entre ambas empresas. En medio queda la propia Ageia, que tendrá que jugar muy fuerte sus cartas para vencer y convencer que debe adoptarse su modelo y no el de estos dos gigantes que son ATI y NVIDIA, teniendo en cuenta además que ATI pertenece ahora a AMD, con lo que es todavía más evidente que si esta empresa se decide a implementar un modelo físico por hardware, su capacidad de investigación y desarrollo son muy superiores a la de la propia Ageia. 

Pirámide de flujo datosPensar y orquestar (CPU), mover e interactuar (PPU), renderizar y visualizar(GPU), los tres elementos que combinados crean un mundo realista

Mencionar también que en mayo y junio de 2006 hubo un gran revuelo en revistas de tecnología, ya que corrió un fuerte rumor de que Microsoft estaba implementando una librería de físicas estándar en las nuevas DirectX 10, y que se llamaría DirextX Physics. Esta librería, similar en objetivos a la DirectX gráfica, estaría orientada a una nueva generación de tarjetas de física que compartirían dicho estándar. Esto implicaría que la librería que incorpora Ageia en su tarjeta PhysX quedaría probablemente relegada al olvido, ya que la fuerza de estandarización de Microsoft haría decantar la balanza hacia este modelo de librerías de funciones, tal como ocurrió con Glide en las antiguas tarjetas Voodoo de la ya desaparecida empresa 3DFX. Microsoft comunicó en julio que no había ningún trabajo por su parte para implementar tal estándar, lo cual no hace sino creer que quizás este asunto aún no ha madurado lo suficiente. No es lógico, y así lo creen los programadores de software, que existan tantas librerías de físicas como empresas, por lo que es de esperar que, o bien Microsoft lance un estándar finalmente, o bien un modelo de una empresa se imponga a los demás por potencia de mercado y por la elección de los programadores. En este sentido, NVIDIA juega con algo de ventaja ya que ha presentado su modelo Quantum Physics antes que ATI haya dado a conocer el suyo, y si bien es cierto que es posterior al de Ageia, también lo es que no pueden compararse ambas empresas en cuanto a presencia en el mercado. Una vez más, la empresa que ha iniciado una nueva revolución, en este caso Ageia, podría verse superada por su propia idea como pasó con 3DFX en el mundo de las tarjetas 3D. Otra librería de físicas que está empezando a ser interesante y que debe seguirse de cerca es la conocida como Havok. Esta física, ya implementada por software en algunos títulos, permite ver el resultado en un mundo mucho más interactivo y real, donde los objetos caen, y no sólo eso, sino que lo hacen en base a su peso y forma, centro de gravedad, etc, y se rompen en función de la velocidad final de caída, material, e impacto con la superficie, según sea una superficie blanda, dura, etc. La implementación de Havok por software permitirá que este mundo se calcule todavía de forma más realista y con una precisión mucho mayor. Implementación y resultados de una PPU en el sistema Quizás el concepto PPU no es muy comentado todavía en revistas y foros online por dos razones: por un lado, es una tecnología desconocida, en la que además los resultados no son visibles de forma tan directa como una mejora gráfica de una nueva GPU. Por poner un ejemplo llamativo, las explosiones en los simuladores y en cualquier videojuego ya ocurren, ya pueden verse y muchas son espectaculares. El hecho de ver una explosión aún más espectacular y que sigue las leyes de la física no llama tanto la atención como la clásica explosión preprogramada, precisamente porque la preprogramación crea un entorno aparentemente realista. Sí, parece realista, pero un objeto en ese modelo de trabajo siempre explota igual. Con una PPU, la explosión se basa totalmente en el punto de contacto, el tipo de material, la velocidad inicial del objeto, etc. Este realismo es evidente, pero no lo es tanto en alguien que conscientemente esté pensando en dicho realismo. Quienes sí lo notarán serán aquellos que usen modelos donde la física es esencial, por ejemplo... Exactamente, un simulador sería un ejemplo perfecto. De ahí que creamos que el mundo de la simulación debería ya empezar a fijarse en estos sistemas, aunque recientes declaraciones de Oleg Maddox, el famoso desarrollador de la saga IL2, no parece que vaya a implementar estas funciones, de momento, en su simulador Battle of Britain. Por otro lado, muy pocos programas implementan todavía la necesaria programación para esta tecnología (hay bastantes en preparación), aunque la lista va creciendo. la última versión de la conocida saga de Tom Clancy, Rainbow Six, hace uso de ella en las ya comentadas explosiones, y corren vídeos demostrativos en la web de Ageia enseñando precisamente la diferencia entre una explosión estándar preprogramada y una en donde se calcula el resultado de la misma y las trayectorias de los objetos, así como la dinámica de los gases resultantes, usando física real. El resultado es mucho más realista, pero de nuevo, no hay una inmediata conciencia por parte del usuario de dicha mejora y realismo. Si la explosión preprogramada está bien hecha puede dar la falsa sensación de ser realista, con lo que aparentemente se pierde la ventaja. Y decimos aparentemente porque podremos experimentar a destruir un objeto con distintas armas, y en general una explosión preprogramada tendrá dos o tres secuencias de destrucción, mientras que una dirigida por una PPU tendrá tantas como formas de incidir el objeto nos permita el software. 

Papeles volandoLa misma física que hace que estos papeles vuelen por el viento, pueden simular una aeronave en vuelo

Algunas pruebas realizadas por estudios de hardware han planteado y sugerido la idea de que la tarjeta PhysX sea sólo un paso intermedio, debido a ciertas limitaciones encontradas en la misma. En pruebas minuciosas se encontró que la carga de la CPU en un software con el uso de la tarjeta y el mismo sin ella no presentaba diferencias significativas. Esto quiere decir de algún modo que, si bien la CPU se está liberando del cálculo de física para los objetos en el escenario virtual, el proceso de tratamiento de los resultados también carga a la CPU, a la GPU, o a ambas, con un índice de proceso que es similar al obtenido sin la tarjeta. De este modo, a diferencia de las GPUs que sí liberaban de carga a la CPU, la PPU no produce este efecto, o es mínimo. Obviamente no hemos de concluir que no haya mejora, ya que con la misma carga de trabajo de la CPU y de la GPU estamos obteniendo un entorno mucho más realista en el mundo virtual. Otras aplicaciones de esta tecnología ya usadas en modelos de investigación Quienes puedan pensar que es un sistema novedoso, están en lo cierto, aunque sólo en parte. La ciencia lleva muchos años desarrollando diferentes recreaciones de física, desde comportamiento  de modelos de partículas en física cuántica, hasta explosiones nucleares y termonucleares, pero como éstas están prohibidas de forma real, se simulan en laboratorios y mediante ordenadores de cálculo muy intensivo. Estos ordenadores calculan, sobre una base inicial, toda la secuencia de explosión de una fisión / fusión y permiten conocer el resultado de la misma con una fiabilidad excelente. Una PPU es básicamente un miniordenador que permite precisamente eso: ejecutar instrucciones basadas en un objeto y calcular cómo incide físicamente. El procesador Cell de la consola PS3 es un producto especialmente potente en el cálculo de físicas, lo cual dota a esta consola de la capacidad de hacer cálculos sobre modelos reales y su comportamiento en un entorno 3D muy realista. Es así por la sencilla razón de que IBM ha creado el Cell para este tipo de cálculos científicos en grandes ordenadores, donde ingentes cantidades de procesadores Cell darán una enorme potencia de cálculo a estos sistemas, denominados comúnmente "trituranúmeros". Ni que decir tiene que para otros tipos de cálculos Cell no tiene el mismo rendimiento, especialmente en el cálculo de enteros, un aspecto muy importante en productos de software de entretenimiento. Pero para cálculos con tipos "float, double", que son tipos internos para números usados en lenguajes como C y C++ en cálculos de gran precisión, vitales en el desarrollo de modelos de física realista, Cell es un hardware tremendamente adecuado y potente. 

GravedadLa vieja ley de la gravedad de Newton, de tan gratos recuerdos (para algunos) en las clases de física 

Claro que, en todos estos aspectos, estamos hablando de cosas espectaculares como explosiones y similares. Volviendo al problema de la simulación, que es precisamente el realismo de un objeto (la aeronave, barco, o unidad terrestre) actuando sobre un fluído (aire, agua, o una superficie sólida determinada), los elementos pueden ser incluso más sutiles que la comparación entre una preprogramación y un modelo de física realista. Aunque la programación no sea directamente más sencilla, el muy complejo trabajo de calcular, para un objeto dado, avión, tren, coche, barco,submarino, etc, cuál es su dinámica sobre el fluido en cada momento, es una cuestión que se deja de calcular directamente en la CPU; los datos se pasan a la PPU, y ésta responde con los resultados, que se aplicarán en el juego visualmente y en respuesta a los controles y su aplicación en cada instante (superficies de control, acelerador, freno, etc). Esto provocará o no una reacción del piloto virtual, lo cual a su vez sirve de flujo de datos a la PPU, que vuelve a contestar. Se crea así un bucle en el que cada acción o la ausencia de la misma provoca una reacción física real. De este modo, dos ventajas son evidentes: el programador no debe estar contemplando cada aspecto de su aeronave, barco, coche, etc, sino que simplemente ha de implementar correctamente el resultado de los datos suministrados por la PPU; y el piloto virtual obtiene una respuesta mucho más acorde y realista. Este es otro ejemplo que, como el comentado anteriormente, permite verificar que, aunque la CPU y GPU no obtienen un mejor rendimiento, sí se está dando dicha mejora en la física del sistema. Este es un caso en el que la suma de las partes produce el mismo resultado de carga pero con una notable mejora final en el entorno visual. Naturalmente, debemos ser precavidos. Que todo ello provoque de forma totalmente segura que un Focke Wulf 190 o que un Spitire o un sumergible se comporten de forma realista tal como lo eran sus modelos reales, es algo que naturalmente no puede asegurarse, por una sencilla razón: el programador ha de informar a la PPU de los datos reales del modelo, aunque no calcule la dinámica de ese avión o barco. Si se transmiten los mismos datos de veinte aviones, tendremos veinte aviones con el mismo comportamiento. En su lugar, el programador se ha de limitar a introducir en la PPU los datos más exactos posibles sobre peso, velocidad, tamaño, situación de superficies de control, y un largo etc de elementos en la PPU, y consecuentemente la PPU devolverá los valores reales asociados con dichas entradas. Por lo tanto, si indicamos que una aeronave pesa treinta toneladas, no cabe esperar el mismo cálculo que si la aeronave pesa dos. Ese es el reto del programador, y un buen trabajo puede permitir una mejora muy sustancial de los modelos físicos que podrán disfrutarse en los simuladores. 

Sistema SolarLas mismas leyes para calcular a una aeronave en vuelo sirven para calcular el movimiento de los planetas

Conclusión. Sin duda estamos empezando a ver resultados en el mundo de la física implementada en las PPUs. La empresa Ageia ha dado el "pistoletazo de salida" en una revolución que está oculta en el interior del software y en su correcta aplicación en el hardware adecuado, y que quizás en muchos casos no vaya a ser tan visible y efectista como lo fue el desarrollo de las tarjetas 3D y de las GPUs. Pero en muchos casos, y especialmente interesante sin duda, será ver los resultados en los simuladores. Este nuevo hardware va a permitir un mundo mucho más real, casi podríamos decir más táctil, donde las cosas se comportan como esperamos, el agua tendrá el movimiento que se espera de ella en cada caso, la nieve caerá como debe en base a peso, viento, etc, y, en general, todo a nuestro alrededor tendrá su propia ley de Newton de la gravedad implementada. Ahora que mandan los gráficos next-gen y la visualización del entorno en alta definición, no es malo pensar que ese mundo tan visualmente atractivo tenga un comportamiento real según la física que todos conocemos intuitivamente por nuestra experiencia diaria en el mundo real. Para muchos, esta implementación será sin duda tan o más interesante que un mundo visualmente perfecto, o puede incluso que más.

Para cualquier duda, opinión, o consulta, el foro es el lugar indicado. 


User Feedback

Recommended Comments

There are no comments to display.


×
×
  • Create New...

Important Information

Some pretty cookies are used in this website