stringtranslate.com

Física X

Una tarjeta BFG Physx

PhysX es un SDK de middleware de motor de física en tiempo real de código abierto [1] desarrollado por Nvidia como parte del paquete de software Nvidia GameWorks .

Inicialmente, los videojuegos compatibles con PhysX estaban destinados a ser acelerados por PhysX PPU ( tarjetas de expansión diseñadas por Ageia ). Sin embargo, después de la adquisición de Ageia por parte de Nvidia, las tarjetas PhysX dedicadas se suspendieron a favor de la API que se ejecuta en GPU GeForce habilitadas para CUDA . En ambos casos, la aceleración de hardware permitió la descarga de cálculos físicos de la CPU , lo que le permitió realizar otras tareas en su lugar.

PhysX y otros motores de física de middleware se utilizan en muchos videojuegos hoy en día porque liberan a los desarrolladores de juegos de tener que escribir su propio código que implementa la mecánica clásica (física newtoniana) para hacer, por ejemplo, dinámica de cuerpos blandos . [2]

Historia

Lo que hoy se conoce como PhysX se originó como un motor de simulación de física llamado NovodeX. El motor fue desarrollado por la empresa suiza NovodeX AG, una filial de la ETH de Zúrich . [3] En 2004, Ageia adquirió NovodeX AG y comenzó a desarrollar una tecnología de hardware que pudiera acelerar los cálculos físicos, ayudando a la CPU. Ageia llamó a la tecnología PhysX, el SDK cambió su nombre de NovodeX a PhysX y las tarjetas aceleradoras se denominaron PPU (unidades de procesamiento de física). [4]

En su implementación, el primer videojuego en utilizar la tecnología PhysX es The Stalin Subway , lanzado en tiendas de juegos exclusivas de Rusia en septiembre de 2005. [5]

En 2008, Ageia fue adquirida por el fabricante de tecnología gráfica Nvidia. [6] Nvidia comenzó a habilitar la aceleración de hardware PhysX en su línea de tarjetas gráficas GeForce [7] y finalmente abandonó el soporte para las PPU de Ageia. [8]

PhysX SDK 3.0 se lanzó en mayo de 2011 y representó una reescritura significativa del SDK, incorporando mejoras como un subprocesamiento múltiple más eficiente y una base de código unificada para todas las plataformas compatibles. [2]

En GDC 2015 , Nvidia puso a disposición el código fuente de PhysX en GitHub , pero requirió registro en developer.nvidia.com. [9] El SDK propietario se proporcionó a los desarrolladores de forma gratuita para uso comercial y no comercial en plataformas Windows , Linux , macOS , iOS y Android . [10]

El 3 de diciembre de 2018, PhysX pasó a ser de código abierto bajo una licencia BSD de 3 cláusulas , pero este cambio se aplicó solo a plataformas informáticas y móviles. [11]

El 8 de noviembre de 2022, la versión de código abierto se actualizó a PhysX 5, bajo la misma licencia BSD de 3 cláusulas . [12]

Características

El motor PhysX y el SDK están disponibles para Microsoft Windows, macOS, Linux, [11] PlayStation 3 , [13] [14] PlayStation 4 , [15] Xbox 360 , [16] Xbox One , [17] Wii , [18] iOS y Android. [11]

PhysX es un SDK de simulación física multiproceso. Admite dinámica de cuerpos rígidos , dinámica de cuerpos blandos (como simulación de telas , incluidas las telas desgarradas y presurizadas), muñecos de trapo y controladores de personajes, dinámica de vehículos , partículas y simulación de fluidos volumétricos .

Aceleración de hardware

Comparación de niveles de física en Mafia II.
(PC) La captura de pantalla superior muestra cómo se simulan los escombros en Mafia II cuando PhysX está configurado en el nivel más alto en la configuración del juego. La captura de pantalla inferior muestra una escena similar con PhysX configurado en el nivel más bajo.

PPU

Una unidad de procesamiento de física (PPU) es un procesador especialmente diseñado para aliviar la carga de cálculo de la CPU, específicamente los cálculos que involucran física. Las PPU PhysX se ofrecieron a los consumidores en forma de tarjetas PCI o PCIe por ASUS , [19] BFG Technologies , [20] [21] Dell [22] y ELSA Technology . [23]

A partir de la versión 2.8.3 del SDK de PhysX, se eliminó el soporte para tarjetas PPU y ya no se fabrican tarjetas PPU. [8] La última encarnación de la tarjeta independiente PhysX PPU diseñada por Ageia tenía aproximadamente el mismo rendimiento PhysX que una 9800GTX dedicada . [24]

GPU

Después de la adquisición de Ageia por parte de Nvidia, el desarrollo de PhysX se alejó de las tarjetas de expansión PPU y se centró en las capacidades GPGPU de las GPU modernas.

Las GPU modernas son muy eficientes a la hora de manipular y mostrar gráficos de computadora, y su estructura altamente paralela las hace más efectivas que las CPU de propósito general para acelerar simulaciones físicas utilizando PhysX.

Cualquier tarjeta gráfica GeForce compatible con CUDA (GPU serie 8 o posterior con un mínimo de 32 núcleos y un mínimo de 256 MB de memoria gráfica dedicada [25] ) puede aprovechar PhysX sin la necesidad de instalar una tarjeta PhysX dedicada.

ÁPEX

La tecnología APEX de Nvidia es un marco de dinámica escalable multiplataforma creado en torno al SDK PhysX. Se introdujo por primera vez en Mafia II en agosto de 2010. [26] APEX de Nvidia comprende los siguientes módulos: APEX Destruction, APEX Clothing, APEX Particles, APEX Turbulence, APEX ForceField y anteriormente APEX Vegetation, que se suspendió en 2011. [27] [28]

A partir de la versión 1.4.1, APEX SDK está obsoleto. [29]

Nvidia FleX

FleX es una técnica de simulación basada en partículas para efectos visuales en tiempo real . Tradicionalmente, los efectos visuales se crean utilizando una combinación de elementos creados con solucionadores especializados para cuerpos rígidos , fluidos, ropa, etc. Debido a que FleX utiliza una representación de partículas unificada para todos los tipos de objetos, permite nuevos efectos donde diferentes sustancias simuladas pueden interactuar entre sí sin problemas. Estos solucionadores de física unificados son un elemento básico del mundo de los gráficos por computadora fuera de línea , donde se utilizan ampliamente herramientas como nCloth de Autodesk Maya y Lagoa de Softimage . El objetivo de FleX es utilizar el poder de las GPU para llevar las capacidades de estas aplicaciones fuera de línea a los gráficos por computadora en tiempo real. [30]

Crítica de Real World Technologies

El 5 de julio de 2010, Real World Technologies publicó un análisis [31] de la arquitectura PhysX. Según este análisis, la mayor parte del código utilizado en las aplicaciones PhysX en ese momento se basaba en instrucciones x87 sin ninguna optimización multihilo . Esto podría causar caídas significativas en el rendimiento al ejecutar código PhysX en la CPU. El artículo sugería que una reescritura de PhysX utilizando instrucciones SSE puede reducir sustancialmente la discrepancia de rendimiento entre PhysX de CPU y PhysX de GPU.

En respuesta al análisis de Real World Technologies, Mike Skolones, gerente de producto de PhysX, dijo [32] que el soporte de SSE se había quedado atrás porque la mayoría de los juegos se desarrollan primero para consolas y luego se trasladan a la PC. Como resultado, las computadoras modernas ejecutan estos juegos más rápido y mejor que las consolas incluso con poca o ninguna optimización. El gerente de relaciones públicas senior de Nvidia, Bryan Del Rizzo, explicó que el multithreading ya había estado disponible con CPU PhysX 2.x y que había sido decisión del desarrollador hacer uso de él. También afirmó que el multithreading automático y SSE se introducirían con la versión 3 del SDK de PhysX. [33]

PhysX SDK 3.0 se lanzó en mayo de 2011 y representó una reescritura significativa del SDK, incorporando mejoras como un subprocesamiento múltiple más eficiente y una base de código unificada para todas las plataformas compatibles. [2]

Uso

PhysX en los videojuegos

La tecnología PhysX es utilizada por motores de juegos como Unreal Engine (versión 3 en adelante), Unity , Gamebryo , Vision (versión 6 en adelante), Instinct Engine, [34] Panda3D , Diesel , Torque , HeroEngine y BigWorld . [25]

Como uno de los pocos motores de física principales, se utiliza en muchos juegos, como The Witcher 3: Wild Hunt , Warframe , Killing Floor 2 , Fallout 4, Batman: Arkham Knight, Planetside 2 y Borderlands 2. La mayoría de estos juegos utilizan la CPU para procesar las simulaciones de física.

Los videojuegos con soporte opcional para PhysX acelerado por hardware a menudo incluyen efectos adicionales como tela desgarrable, humo dinámico o restos de partículas simulados. [35] [36] [37]

PhysX en otro software

Otros programas con soporte para PhysX incluyen:

Véase también

Referencias

  1. ^ "NVIDIA PhysX SDK 4.1". Engadget . Consultado el 5 de abril de 2022 .
  2. ^ abc «NVIDIA anuncia el lanzamiento de PhysX SDK V3». Nvidia . Archivado desde el original el 24 de mayo de 2011. Consultado el 3 de junio de 2011 .
  3. ^ "NovodeX AG". ETH Zürich . Archivado desde el original el 8 de enero de 2018. Consultado el 4 de diciembre de 2018 .
  4. ^ César A. Berardini (12 de abril de 2005). «Entrevista a AGEIA Technologies». Archivado desde el original el 21 de septiembre de 2011. Consultado el 8 de junio de 2011 .
  5. ^ "Motor de física: PhysX". MobyGames . Consultado el 6 de septiembre de 2023 .
  6. ^ "NVIDIA completa la adquisición de AGEIA Technologies" (Nota de prensa). NVIDIA Corporation. 13 de febrero de 2008. Consultado el 18 de marzo de 2009 .
  7. ^ "PhysX para CUDA, ¿es compatible con Linux?". Forónix . Medios Phoronix. 14 de febrero de 2008 . Consultado el 14 de febrero de 2008 .
  8. ^ ab "Cómo restaurar la compatibilidad con PPU con los últimos controladores PhysX | PhysXInfo.com – Noticias PhysX". PhysXInfo.com. 17 de enero de 2011. Archivado desde el original el 24 de noviembre de 2011. Consultado el 30 de noviembre de 2011 .
  9. ^ "PhysX en GitHub". Nvidia . Consultado el 6 de marzo de 2015 .
  10. ^ "PhysX SDK a fecha de 7 de enero de 2017". Nvidia . Archivado desde el original el 7 de enero de 2017 . Consultado el 3 de septiembre de 2017 .
  11. ^ abc «PhysX SDK». NVIDIA Developer . 28 de noviembre de 2018. Archivado desde el original el 5 de diciembre de 2018. Consultado el 5 de diciembre de 2018 .
  12. ^ "La simulación de código abierto se expande con el lanzamiento de NVIDIA PhysX 5". Nvidia . 8 de noviembre de 2022. Archivado desde el original el 28 de mayo de 2023 . Consultado el 15 de junio de 2023 .
  13. ^ "Sony Computer Entertainment entra en un acuerdo de licencia estratégica con AGEIA" (PDF) (Nota de prensa). Sony Computer Entertainment, Inc. 21 de julio de 2005. Archivado desde el original (PDF) el 11 de marzo de 2006 . Consultado el 23 de agosto de 2006 .
  14. ^ "Playstation 3 obtiene PhysX gratis de Nvidia". Kotaku. 18 de marzo de 2009.
  15. ^ Lowe, Scott (7 de marzo de 2013). "Nvidia anuncia compatibilidad con PhysX para PlayStation 4".
  16. ^ "PhysX – Descripción general – GeForce". Nvidia.com. Archivado desde el original el 29 de abril de 2009. Consultado el 30 de noviembre de 2011 .
  17. ^ "NVIDIA anuncia compatibilidad con PhysX para la consola de juegos Microsoft Xbox One". Nvidia.com. Archivado desde el original el 9 de noviembre de 2014. Consultado el 9 de noviembre de 2014 .
  18. ^ "Noticias – Pre-GDC: Nvidia PhysX aprobada para desarrolladores de Wii". Gamasutra. 19 de marzo de 2009. Consultado el 30 de noviembre de 2011 .
  19. ^ "Revisión y vista previa de la tarjeta Asus PhysX de 128 MB". 12 de julio de 2006.
  20. ^ "AGEIA y BFG Technologies firman un acuerdo de distribución minorista". Archivado desde el original el 26 de abril de 2006.
  21. ^ "Reseña de la tarjeta BFG Ageia PhysX". 1 de octubre de 2007.
  22. ^ "AGEIA PhysX - tarjeta gráfica - AGEIA PhysX - 128 MB Especificaciones". Cnet.
  23. ^ "ELSA se asocia con Ageia".
  24. ^ "Artículos en inglés de PC Games Hardware". www.pcgameshardware.com . 26 de enero de 2009.
  25. ^ ab "Preguntas frecuentes sobre PhysX". Nvidia.com . Consultado el 10 de diciembre de 2015 .
  26. ^ Olin Coles. "Revisión del rendimiento del videojuego Mafia-II". BenchmarkReviews.com . Consultado el 23 de agosto de 2010 .
  27. ^ "APEX" . Consultado el 8 de junio de 2011 .
  28. ^ "Categoría:APEX - Wiki de PhysX". PhysXInfo.com . Consultado el 21 de julio de 2013 .
  29. ^ "APEX 1.4.1 - Notas de la versión (APEX ha quedado obsoleto)". gameworksdocs.nvidia.com . Consultado el 5 de diciembre de 2018 .
  30. ^ "NVIDIA FleX". NVIDIA Developer . 13 de agosto de 2015 . Consultado el 17 de abril de 2019 .
  31. ^ "PhysX87: Deficiencia de software". www.realworldtech.com .
  32. ^ Stokes, Jon (8 de julio de 2010). "¿NVIDIA paralizó su biblioteca de física para juegos de CPU para fastidiar a Intel?". Arstechnica.com . Consultado el 30 de noviembre de 2011 .
  33. ^ "Nvidia: No estamos obstaculizando la CPU PhysX | thinq_ | Página 1". Thinq.co.uk . Consultado el 30 de noviembre de 2011 .
  34. ^ "Instinct Software - Instinct Engine SDK". Instinctengine.com. Archivado desde el original el 13 de febrero de 2015. Consultado el 4 de octubre de 2013 .
  35. ^ Matt Butrovich (12 de febrero de 2009). "Una mirada a PhysX en Mirror's Edge". The Tech Report . Consultado el 6 de abril de 2011 .
  36. ^ Rich Brown (21 de septiembre de 2009). "PhysX de Nvidia hace que valga la pena esperar por Batman: Arkham Asylum para PC". cNET.com . Consultado el 6 de abril de 2011 .
  37. ^ Matthew Murray (2 de septiembre de 2010). "Mafia II: ¿Vale la pena Applied PhysX?". ExtremeTech . Archivado desde el original el 30 de diciembre de 2010. Consultado el 6 de abril de 2011 .
  38. ^ "Guía del usuario de PhysX - Lumberyard". Archivado desde el original el 22 de septiembre de 2020 . Consultado el 15 de abril de 2020 .
  39. ^ Jim Thacker (1 de marzo de 2011). "Videos: Autodesk revela nuevas características en Maya 2012". cgchannel.com . Consultado el 6 de abril de 2011 .
  40. ^ "3ds Max 2012 y Maya 2012 añaden compatibilidad con PhysX". Beyond3D.com. 1 de marzo de 2011. Archivado desde el original el 8 de julio de 2017. Consultado el 6 de abril de 2011 .
  41. ^ Randall Hand (5 de mayo de 2010). "NVidia PhysX y CUDA en Softimage 2011". Vizworld.com . Consultado el 6 de abril de 2011 .
  42. ^ "Los creadores del juego integran la tecnología AGEIA PhysX en DarkBASIC Professional" (nota de prensa). The Game Creators. 22 de marzo de 2006. Archivado desde el original el 27 de abril de 2006. Consultado el 23 de septiembre de 2006 .
  43. ^ "Descripción general". DX Studio . Worldweaver. Archivado desde el original el 5 de julio de 2009 . Consultado el 2 de noviembre de 2008 .
  44. ^ "AGEIA se une al programa de desarrollo de benchmark 3DMark de Futuremark". FindArticles . CBS Interactive. BusinessWire . 27 de septiembre de 2006 . Consultado el 3 de noviembre de 2008 .
  45. ^ "Descripción general de la simulación". Centro de desarrollo de robótica de Microsoft . Microsoft. Marzo de 2012.
  46. ^ Boeing, Adrian. "Motores". Capa de abstracción de física . Consultado el 18 de noviembre de 2007 .
  47. ^ Pierre-Terdiman (22 de marzo de 2019), GitHub - Pierre-Terdiman/PEEL: Physics Engine Evaluation Lab. , consultado el 22 de marzo de 2019
  48. ^ "Vista previa de Unreal Engine 4.26". 24 de septiembre de 2020.
  49. ^ "Unity - Manual: Física".

Enlaces externos