PhysX - PhysX

PhysX
NVIDIA PhysX Logo.png
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 ( 12/10/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

Comparación de niveles de física en Mafia II.
(PC) La captura de pantalla superior muestra cómo se simulan los desechos en Mafia II cuando PhysX se cambia al nivel más alto en la configuración del juego. La captura de pantalla inferior muestra una escena similar con PhysX 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 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:

Ver también

Referencias

enlaces externos