PhysX SDK 3.2.4 release is available

PhysX SDK 3.2.4 release is availablenVidia released a  new bug-fixing release of the PhysX SDK 3.x. PhysX SDK 3.x represents a significant rewrite of the PhysX engine. This rewrite involved extensive changes to the API that effectively results in a new PhysX engine rather than a chart of changes based on its predecessor version.  The various platforms versions are generated from a unified code base, further differentiating it from version 2.x.  In addition to a new modular design, considerable legacy clutter has been removed. Collectively these changes have resulted in a physics SDK designed to facilitate easier on-going maintenance, enable simpler ports to emerging gaming platforms, and the addition of new features and capabilities. PhysX SDK 3.0 was designed to be competitive on current-gen consoles and anticipates devices with even less system resources.

 

 

These architectural changes include but are not limited to better overall memory management, improvements to cache efficiency, cross-platform SIMD implementations, intelligent SPU usage on PS3, multi-threading across multiple cores, and AltiVec/VMX optimizations on Xbox 360.

  • Note: PS3 platform specific changes can be found in the PS3 readme file.
  • Quaternions passed through the API are now considered valid if their magnitude is between 0.99 and 1.01.
  • Fixed crash when running out of memory on creation of a triangle mesh.
  • For applications using floating point exceptions, the SDK will now mask or avoid exceptions arising from invalid floating point operations (inexact and underflow exceptions may still be generated).
  • Fixed a bug with recursive use of the PxScene read/write lock.
  • Fixed a shutdown bug with very short lived threads on Linux platforms.
  • PhysX version number in error messages now printed in hex for easier reading.

PhysX SDK 3.0 features new Task Manager feature that supports two Dispatchers (for PC both CPU and GPU Dispatchers are available) that are responsible for managing task dependencies and distributing tasks across as many worker threads as the developer defines. This feature allows the developer to balance the proper mix of resources to achieve the desired performance level. PhysX SDK 3.0 also incorporates a SolverBatch that supports multiple threads for Rigid Bodies and Deformable that are using different solver islands.  Additionally, narrow phase computation can use this feature to run multiple threads.

The particles and particle fluids pipeline currently provides tasks to run the following in parallel (PC/Xbox 360):

  • Multiple particle system instances (for collision and SPH phases)
  • Multiple work units for collision per particle system instance
  • Multiple work units for SPH per particle fluid instance

For PS3 there is additional parallelization available for shape generation, which isn’t implemented yet for PC/Xbox 360. However, it doesn’t provide the parallelization across multiple particle system instances.

A reworked vehicle model now includes components such as engine, clutch, gears, autobox, differential, wheels, tyres, suspensions and chassis, in comparison to simplified suspension/wheel/tire NXWheelShape class in PhysX SDK 2.x.  One of the interesting aspects of the new model is the ability to create tire types, drivable surface types, and specify the friction used in the vehicle simulator to combine different tire and drivable surface types. Like PhysX SDK 2.x, the vehicle model exists outside of the PhysX Core and so it does not have to be compiled into a game, to reduce executable size, if not needed. Source code is provided to facilitate developer customization.

  • Vehicles with rigid body actors that are asleep and also have no acceleration or steer inputs are treated as though they are asleep too; that is, they are bypassed completely in the PxVehicleUpdates function. Vehicles with sleeping rigid body actors but with non-zero acceleration or steer inputs are processed as normal in PxVehicleUpdates and will automatically have their rigid body actor woken up.
  • New function PxVehicleSetUpdateMode to allow PxVehicleUpdates to select between applying accelerations to vehicle rigid bodies or immediate updating of their velocity.

Popular