NVIDIA has published a new major version of its PhysX SDK. As usual, you can download it from HERE (an account is required).
The version 3 of PhysX SDK is rewrite of the PhysX engine. Here are the new features:
– PhysX SDK 3.0 represents a significant rewrite of the PhysX engine.
– Focus on consoles and emerging gaming platforms.
– Improved multi-threading
– Reworked vehicle model
– New Serialization API
– Aggregates and broadphase clustering.
– Double Buffering
– Deformables and force fields
For more information about the new stuff of PhysX SDK 3.0, read this detailed post: PhysX SDK 3.0 has been released !
The double buffering seems to be a nice feature. Double buffering allows the client application to read and write to actors and the scene while the simulation is running on another thread. And this is exactly what I need for GeeXLab. In GeeXLab, you can start PhysX simulation in a separate Win32 thread. But while the simulation is running, you can’t modify actors properties or add new actors in the PhysX scene. I added some tweaks to bypass this issue but I’m not satisfied. I hope that double buffering can really help me.
Then you can expect new versions of GeeXLab and FluidMark in the next days…
Many things have changed and developers using PhysX in their apps will have to learn new things.
As you can see, according to the doc, here are the new paths and libs you have to use in your projects:
"PhysXSDK/pxtask/include" "PhysXSDK/PxToolkit/include" "PhysXFoundationSDK" "PhysXFoundationSDK/internal/include" "PhysXProfileSDK/sdk/sdk/include" "PhysXVisualDebuggerSDK/PVDCommLayer/Public" "SDKs/PhysXAPI" "SDKs/GeomUtils/headers" "SDKs/RepX/include" "SDKs/PhysXAPI/characterkinematic"
Foundation PhysX3Common PhysX3CharacterDynamic PhysX3CharacterKinematic PhysX3Vehicle PhysX3Cooking PhysX3 PhysX3Extensions LowLevel GeomUtils SceneQuery SimulationController PvdRuntime RepX3
Of course, all libs are not required. For example PhysX3Vehicle.lib is required if Vehicule module is used.
Here is a code snippet that show how to create a SDK object:
#include "PxPhysicsAPI.h" PxPhysics* sdk; sdk = PxCreatePhysics(PX_PHYSICS_VERSION, NULL, NULL, PxTolerancesScale(), true);
Here are the screenshots of the new samples: