PhysX - PhysX
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.21.0713 / 12 de octubre de 2021
|
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 |
Escribe | Simulación de física |
Licencia | BSD-3 |
Sitio web | Sitio para desarrolladores de Nvidia PhysX |
PhysX es un SDK de middleware de motor de física en tiempo real de código abierto 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 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 una 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 .
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 . 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).
El primer juego en usar PhysX fue Bet On Soldier: Blood Sport (2005).
En 2008, Ageia fue adquirida por el fabricante de tecnología gráfica Nvidia. Nvidia comenzó a habilitar la aceleración de hardware PhysX en su línea de tarjetas gráficas GeForce y finalmente dejó de admitir Ageia PPU.
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.
En GDC 2015 , Nvidia hizo que el código fuente de PhysX estuviera disponible en GitHub , pero requirió el registro en developer.nvidia.com. 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 .
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.
PhysX 5.0 se anunció en diciembre de 2019, pero no se ha lanzado al público debido a la pandemia de COVID-19 .
Características
El motor PhysX y el SDK están disponibles para Microsoft Windows, macOS, Linux, PlayStation 3 , PlayStation 4 , Xbox 360 , Xbox One , Wii , iOS y Android.
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 se ofrecieron a los consumidores en forma de tarjetas PCI o PCIe por ASUS , BFG Technologies , Dell y ELSA Technology .
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. 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.
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) 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. El 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.
A partir de la versión 1.4.1, APEX SDK está obsoleto.
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.
Críticas de tecnologías del mundo real
El 5 de julio de 2010, Real World Technologies publicó un análisis 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 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.
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.
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, Panda3D , Diesel , Torque , HeroEngine y BigWorld .
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.
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
- Amazon Lumberyard , un motor de desarrollo de juegos en 3D desarrollado por Amazon
- Autodesk 3ds Max , Autodesk Maya y Autodesk Softimage , suites de animación por computadora
- DarkBASIC Professional (con la actualización DarkPHYSICS), un lenguaje de programación dirigido al desarrollo de juegos
- DX Studio , un entorno de desarrollo integrado para crear gráficos 3D interactivos
- Futuremark 's 3DMark06 y Vantage herramientas de evaluación comparativa
- Microsoft Robotics Studio , un entorno para el control y la simulación de robots
- 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
- La Capa Física abstracción , una simulación física de la API de abstracción del sistema (que proporciona Collada y Editor de Física Guadaña soporte para PhysX)
- Rayfire, un complemento para Autodesk 3ds Max que permite fracturas y otras simulaciones físicas
- Physics Engine Evaluation Lab, una herramienta diseñada para evaluar, comparar y comparar motores de física.
- Software de desarrollo de juegos Unreal Engine de Epic Games . Unreal Engine 4.26 y posteriores ha desaprobado oficialmente PhysX.
- Unity (motor de juego) de Unity ApS. La pila de tecnología orientada a datos de Unity no utiliza PhysX.
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