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 .
Autor (es) original (es) | NovodeX AG ( ETH Zúrich ) |
---|---|
Desarrollador (es) | Nvidia Corporation (2008-presente) Ageia (2004-2008) NovodeX AG (2001-2004) |
Lanzamiento estable | 9.19.0218 / 5 de marzo de 2019 |
Repositorio | https://github.com/NVIDIAGameWorks/PhysX |
Sistema operativo | Microsoft Windows , macOS , Linux , PlayStation 2 , PlayStation 3 , PlayStation 4 , Xbox 360 , Xbox One , Wii , iOS , Android |
Tipo | Simulación de física |
Licencia | BSD-3 |
Sitio web | Sitio para desarrolladores de Nvidia PhysX |
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 Nvidia, las tarjetas PhysX dedicadas se han descontinuado a favor de que la API se ejecute 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 la gran mayoría de los videojuegos actuales 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, la dinámica del cuerpo blando . [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 escisión de ETH Zurich . [3] En 2004, Ageia adquirió NovodeX AG y comenzó a desarrollar una tecnología de hardware que podría acelerar los cálculos físicos, ayudando a la CPU. Ageia llamó a la tecnología PhysX, el SDK pasó a llamarse NovodeX a PhysX, y las tarjetas aceleradoras se denominaron PPU (Unidades de procesamiento de física). [4]
El primer juego en usar PhysX fue Bet On Soldier: Blood Sport (2005). [ cita requerida ]
En 2008, Ageia fue adquirida por el fabricante de tecnología gráfica Nvidia. [5] Nvidia comenzó a habilitar la aceleración de hardware PhysX en su línea de tarjetas gráficas GeForce [6] y finalmente dejó de admitir Ageia PPU. [7]
PhysX SDK 3.0 se lanzó en mayo de 2011 y representó una reescritura significativa del SDK, aportando mejoras como un subproceso múltiple más eficiente y una base de código unificada para todas las plataformas compatibles. [2]
En GDC 2015 , Nvidia hizo que el código fuente de PhysX estuviera disponible en GitHub , pero requirió el registro en developer.nvidia.com. [8] El SDK propietario se proporcionó a los desarrolladores de forma gratuita para uso comercial y no comercial en las plataformas Windows , Linux , macOS , iOS y Android . [9]
El 3 de diciembre de 2018, PhysX se convirtió en código abierto bajo una licencia BSD de 3 cláusulas , pero este cambio se aplicó solo a computadoras y plataformas móviles. [10]
Características
El motor PhysX y el SDK están disponibles para Microsoft Windows, macOS, Linux, [10] PlayStation 3 , [11] [12] PlayStation 4 , [13] Xbox 360 , [14] Xbox One , [15] Wii , [16] iOS y Android. [10]
PhysX es un SDK de simulación de física multiproceso. Es compatible con la dinámica de cuerpo rígido , la dinámica del cuerpo suaves (como simulación de tela , incluyendo el desgarro y la tela a presión), ragdolls y los controladores de caracteres, la dinámica del vehículo, partículas y simulación de fluido volumétrico.
Aceleracion de hardware
PPU
Una unidad de procesamiento de física (PPU) es un procesador especialmente diseñado para aliviar la carga de cálculo en la CPU, específicamente los cálculos relacionados con la física. Las PPU PhysX fueron ofrecidas a los consumidores en forma de tarjetas PCI o PCIe por ASUS , [17] BFG Technologies , [18] [19] Dell [20] y ELSA Technology . [21]
A partir de la versión 2.8.3 del PhysX SDK, se eliminó el soporte para tarjetas PPU y las tarjetas PPU ya no se fabrican. [7] 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. [22]
GPU
Después de la adquisición de Ageia por parte de Nvidia, el desarrollo de PhysX se alejó de las tarjetas de extensión PPU y se centró en cambio en las capacidades GPGPU de las GPU modernas.
Las GPU modernas son muy eficientes para 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 usando PhysX.
Cualquier tarjeta gráfica GeForce lista para CUDA (GPU de la serie 8 o posterior con un mínimo de 32 núcleos y un mínimo de 256 MB de memoria gráfica dedicada [23] ) puede aprovechar PhysX sin la necesidad de instalar una tarjeta PhysX dedicada.
APÉNDICE
La tecnología Nvidia APEX es un marco dinámico escalable multiplataforma construido alrededor del PhysX SDK. Se introdujo por primera vez en Mafia II en agosto de 2010. [24] El APEX de Nvidia comprende los siguientes módulos: Destrucción APEX, Ropa APEX, Partículas APEX, Turbulencia APEX, APEX ForceField y anteriormente APEX Vegetación que se suspendió en 2011. [25] [26 ]
A partir de la versión 1.4.1, APEX SDK está en desuso. [27]
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. Dado que FleX utiliza una representación de partículas unificada para todos los tipos de objetos, permite nuevos efectos en los que diferentes sustancias simuladas pueden interactuar entre sí. sin problemas. Estos solucionadores de física unificada son un elemento básico del mundo de los gráficos por computadora fuera de línea , donde herramientas como nCloth de Autodesk Maya y Lagoa de Softimage se utilizan ampliamente. El objetivo de FleX es utilizar la potencia de las GPU para llevar las capacidades de estas aplicaciones fuera de línea a gráficos por computadora en tiempo real. [28]
Críticas de tecnologías del mundo real
El 5 de julio de 2010, Real World Technologies publicó un análisis [29] 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 de subprocesos múltiples. Esto podría causar caídas significativas en el rendimiento al ejecutar código PhysX en la CPU. El artículo sugirió que una reescritura de PhysX usando instrucciones SSE puede disminuir sustancialmente la discrepancia de rendimiento entre CPU PhysX y GPU PhysX.
En respuesta al análisis de Real World Technologies, Mike Skolones, gerente de producto de PhysX, dijo [30] que el soporte SSE se había quedado atrás porque la mayoría de los juegos se desarrollan primero para consolas y luego se transfieren 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 senior de relaciones públicas de Nvidia, Bryan Del Rizzo, explicó que los subprocesos múltiples ya estaban disponibles con CPU PhysX 2.xy que el desarrollador tenía que hacer uso de ellos. También afirmó que el multihilo automático y SSE se introducirían con la versión 3 del PhysX SDK. [31]
PhysX SDK 3.0 se lanzó en mayo de 2011 y representó una reescritura significativa del SDK, aportando mejoras como un subproceso múltiple más eficiente y una base de código unificada para todas las plataformas compatibles. [2]
Uso
PhysX en 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, [32] Panda3D , Diesel , Torque , HeroEngine y BigWorld . [23]
Como uno de los pocos motores de física más importantes, se utiliza en muchos juegos, como The Witcher 3: Wild Hunt , Warframe , Killing Floor 2 , Fallout 4 , Batman: Arkham Knight , Borderlands 2 , etc. la CPU para procesar las simulaciones físicas.
Los videojuegos con soporte opcional para PhysX acelerado por hardware a menudo incluyen efectos adicionales como tela que se puede rasgar, humo dinámico o partículas simuladas. [33] [34] [35]
PhysX en otro software
Otro software compatible con PhysX incluye:
- Active Worlds (AW), una plataforma de realidad virtual 3D con su cliente ejecutándose en Windows [ cita requerida ]
- Amazon Lumberyard , un motor de desarrollo de juegos en 3D desarrollado por Amazon [36]
- Autodesk 3ds Max , Autodesk Maya y Autodesk Softimage , suites de animación por computadora [37] [38] [39]
- DarkBASIC Professional (con actualización DarkPHYSICS), un lenguaje de programación dirigido al desarrollo de juegos [40]
- DX Studio , un entorno de desarrollo integrado para crear gráficos 3D interactivos [41]
- Futuremark 's 3DMark06 y Vantage herramientas de evaluación comparativa [42]
- Microsoft Robotics Studio , un entorno para el control y la simulación de robots [43]
- Sled SuperSonic de Nvidia y Raging Rapids Ride, demostraciones de tecnología
- OGRE (a través del contenedor NxOgre), un motor de renderizado de código abierto [ cita requerida ]
- La Capa Física de la abstracción , una simulación física API de abstracción del sistema (que proporciona COLLADA y Editor Physics Guadaña soporte para PhysX) [44]
- Rayfire, un complemento para Autodesk 3ds Max que permite fracturas y otras simulaciones de física [ cita requerida ]
- Physics Engine Evaluation Lab, una herramienta diseñada para evaluar, comparar y comparar motores de física. [45]
- Software de desarrollo de juegos Unreal Engine de Epic Games . Unreal Engine 4.26 y posteriores ha desaprobado oficialmente PhysX. [46]
- Unity (motor de juego) de Unity ApS. La pila de tecnología orientada a datos de Unity no utiliza PhysX. [47]
Ver también
- DirectX
- Bullet (software)
- Havok (software)
- Motor de dinámica abierta
- Dinámica del juego de Newton
- OpenGL
- Vortex (software)
- Multifísica AGX
Referencias
- ^ Fingas, Jon (3 de diciembre de 2018). "Cualquiera puede utilizar el motor de simulación física de NVIDIA" . Engadget . Consultado el 3 de diciembre de 2018 .
- ^ a b c "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 .
- ^ "NovodeX AG" . ETH Zürich . Archivado desde el original el 8 de enero de 2018 . Consultado el 4 de diciembre de 2018 .
- ^ César A. Berardini (12 de abril de 2005). "Entrevista de AGEIA Technologies" . Archivado desde el original el 21 de septiembre de 2011 . Consultado el 8 de junio de 2011 .
- ^ "NVIDIA completa la adquisición de AGEIA Technologies" (Comunicado de prensa). NVIDIA Corporation. 13 de febrero de 2008 . Consultado el 18 de marzo de 2009 .
- ^ "¿PhysX para CUDA, soporte de Linux por supuesto?" . Phoronix . Phoronix Media. 14 de febrero de 2008 . Consultado el 14 de febrero de 2008 .
- ^ a b "Cómo restaurar el soporte PPU con los últimos controladores PhysX | PhysXInfo.com - PhysX News" . PhysXInfo.com. 17 de enero de 2011 . Consultado el 30 de noviembre de 2011 .
- ^ "PhysX en GitHub" . Nvidia . Consultado el 6 de marzo de 2015 .
- ^ "PhysX SDK a 7 de enero de 2017" . Nvidia . Archivado desde el original el 7 de enero de 2017 . Consultado el 3 de septiembre de 2017 .
- ^ a b c "PhysX SDK" . Desarrollador NVIDIA . 28 de noviembre de 2018. Archivado desde el original el 5 de diciembre de 2018 . Consultado el 5 de diciembre de 2018 .
- ^ "Sony Computer Entertainment firma un acuerdo de licencia estratégico con AGEIA" (PDF) (Comunicado 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 .
- ^ "Playstation 3 obtiene PhysX gratis de Nvidia" . Kotaku.
- ^ Lowe, Scott (7 de marzo de 2013). "Nvidia anuncia soporte PhysX para PlayStation 4" .
- ^ "PhysX - Descripción general - GeForce" . Nvidia.com . Consultado el 30 de noviembre de 2011 .
- ^ "NVIDIA anuncia la 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 .
- ^ "Noticias - Pre-GDC: Nvidia PhysX aprobado para desarrolladores de Wii" . Gamasutra. 19 de marzo de 2009 . Consultado el 30 de noviembre de 2011 .
- ^ "Revisión / vista previa de la tarjeta Asus 128mb PhysX" . 12 de julio de 2006.
- ^ "AGEIA y BFG Technologies firman un acuerdo de distribución minorista" . Archivado desde el original el 26 de abril de 2006.
- ^ "Revisión de la tarjeta BFG Ageia PhysX" . 1 de octubre de 2007.
- ^ "AGEIA PhysX - tarjeta gráfica - AGEIA PhysX - 128 MB Specs" . Cnet.
- ^ "ELSA se une a Ageia" .
- ^ "Artículos en inglés de hardware de juegos de PC" . www.pcgameshardware.com . 26 de enero de 2009.
- ^ a b "Preguntas frecuentes de PhysX" . Nvidia.com . Consultado el 10 de diciembre de 2015 .
- ^ Olin Coles. "Revisión de rendimiento de videojuegos Mafia-II" . BenchmarkReviews.com . Consultado el 23 de agosto de 2010 .
- ^ "APEX" . Consultado el 8 de junio de 2011 .
- ^ "Categoría: APEX - PhysX Wiki" . PhysXInfo.com . Consultado el 21 de julio de 2013 .
- ^ "APEX 1.4.1 - Notas de la versión (APEX ha quedado obsoleto)" . gameworksdocs.nvidia.com . Consultado el 5 de diciembre de 2018 .
- ^ "NVIDIA FleX" . Desarrollador NVIDIA . 13 de agosto de 2015 . Consultado el 17 de abril de 2019 .
- ^ "PhysX87: Deficiencia de software" . www.realworldtech.com .
- ^ Stokes, Jon (8 de julio de 2010). "¿NVIDIA paralizó su biblioteca de física de juegos de CPU para fastidiar a Intel?" . Arstechnica.com . Consultado el 30 de noviembre de 2011 .
- ^ "Nvidia: No estamos obstaculizando CPU PhysX | thinq_ | Page 1" . Thinq.co.uk . Consultado el 30 de noviembre de 2011 .
- ^ "Instinct Software - Instinct Engine SDK" . Instinctengine.com. Archivado desde el original el 13 de febrero de 2015 . Consultado el 4 de octubre de 2013 .
- ^ Matt Butrovich (12 de febrero de 2009). "Una mirada a PhysX en Mirror's Edge" . El informe técnico . Consultado el 6 de abril de 2011 .
- ^ Rich Brown (21 de septiembre de 2009). "PhysX de Nvidia hace que PC Batman: Arkham Asylum valga la pena esperar" . cNET.com . Consultado el 6 de abril de 2011 .
- ^ Matthew Murray (2 de septiembre de 2010). "Mafia II: ¿Vale la pena Applied PhysX?" . ExtremeTech . Consultado el 6 de abril de 2011 .
- ^ https://docs.aws.amazon.com/lumberyard/latest/userguide/gems-system-gem-physx.html
- ^ Jim Thacker (1 de marzo de 2011). "Videos: Autodesk revela nuevas funciones en Maya 2012" . cgchannel.com . Consultado el 6 de abril de 2011 .
- ^ "3ds Max 2012 y Maya 2012 agregan soporte 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 .
- ^ Randall Hand (5 de mayo de 2010). "NVidia PhysX y CUDA en Softimage 2011" . Vizworld.com . Consultado el 6 de abril de 2011 .
- ^ "Los creadores de juegos integran la tecnología AGEIA PhysX en DarkBASIC Professional" (Comunicado de prensa). Los creadores del juego. 22 de marzo de 2006. Archivado desde el original el 27 de abril de 2006 . Consultado el 23 de septiembre de 2006 .
- ^ "Resumen" . DX Studio . Worldweaver. Archivado desde el original el 5 de julio de 2009 . Consultado el 2 de noviembre de 2008 .
- ^ "AGEIA se une al programa de desarrollo de referencia 3DMark de Futuremark" . FindArticles . CBS Interactive. BusinessWire . 27 de septiembre de 2006 . Consultado el 3 de noviembre de 2008 .
- ^ "Descripción general de la simulación" . Centro de desarrolladores de robótica de Microsoft . Microsoft.
- ^ Boeing, Adrian. "Motores" . Capa de abstracción física . Consultado el 18 de noviembre de 2007 .
- ^ Pierre-Terdiman (22 de marzo de 2019), GitHub - Pierre-Terdiman / PEEL: Laboratorio de evaluación de motores de física. , consultado el 22 de marzo de 2019
- ^ https://forums.unrealengine.com/unreal-engine/announcements-and-releases/1814986-unreal-engine-4-26-preview
- ^ https://docs.unity3d.com/Manual/PhysicsSection.html
enlaces externos
- Sitio oficial del producto
- Techgage: AGEIA PhysX .. Primeras impresiones
- Techgage: PhysX de NVIDIA: informe de estado y rendimiento