The NxUserRenderResourceManager’s surface buffer create and release virtual methods must be implemented by the user. They are only used by particular turbulence features, so if turbulence isn’t being used the implementation can be empty.

Starting with NVIDIA R302 drivers, application developers can direct the Optimus driver at runtime to use the High Performance Graphics to render any application – even those applications for which there is no existing application profile. The APEX samples now makes use of this “NvOptimusEnablement” feature to enable High Performance Graphics by default.

Debug info added to all PS4 builds except release builds.

Android sample builds now generate an APK. This requires some extra defines for Java and Ant. See the Android examples section of the sample documentation for details.

Turbulence smoke is utilizing latest APEX 1.3, can cast and recieve shadows on a rendering side, and is applied to a number of environmental and combat assets throughout the game.

Particles are affected by forcefields (such as shots and explosions) and weather conditions (such as wind). They can interact with characters and are also colliding with static level geometry, as a nice addition.

In APEX 1.2 every module had its own legacy module. For example, if an application uses APEX clothing and destruction, in APEX 1.2 the application would need to load both APEX_Clothing_Legacy and APEX_Destructible_Legacy.

However, assets created with APEX 1.1 or 1.2 should “just work” with APEX 1.3. The application must load the legacy module, which contains all the code that allows APEX to automatically upgrade assets to the latest version.

The rendering of destructibles and cloth can now be managed by a new object that is independent of the actors themselves. By default you will not see a change, but you may detach this object from the actors, meaning that the render data will not get deleted when the actors are deleted. You may delete the renderable when you’re done with it.

This is useful for multi-threaded renderers which may have the render data queued up even after the destructible or clothing actor is deleted in the main thread.

Speaking of Destruction, so called Behaviour Groups functionality was added to authoring pipeline.

Some common parameters, such as damage threshold, damage spread, density, etc., are now contained in “Behavior Groups“. Every chunk references a behavior group by index, allowing the user to customize behaviors for different chunks within single asset.

Fixed a bug which could cause triggers to not fire touch events after a kinematic actor moved into or out of overlap and had no target set anymore in the next simulation step.

Fixed crash when setting multiple materials on a shape followed by release/removal of the corresponding actor from the scene (all while the simulation is running).

Rigid Bodies

Fixed a bug that caused bodies to not respond to applied velocities or forces if the autowake parameter in those methods was set to false. This could happen for (almost) resting bodies which were close to other bodies (bounding box overlap) but did not touch them.

Vehicles

Bugs in the suspension force and tire load computation have been fixed that affected handling when the vehicle was upside down.

The tire load passed to the tire force computation is now clamped so that it never falls below zero.

PxVehicleTireLoadFilterData now requires that mMinNormalisedLoad is greater than or equal to zero.

PxVehicleTireLoadFilterData now has a new member variable mMinFilteredNormalisedLoad. This value describes the filtered normalised load that occurs when the normalised is less than or equal to mMinNormalisedLoad.

PxVehicleWheelsSimData now has a new function setMinLongSlipDenominator. This can be used to tune stability issues that can arise when the vehicle slows down in the absence of brake and drive torques.

A bug in the tank damping forces has now been fixed. Tanks now slow down more aggressively from engine and wheel damping forces.

A new section “The Vehicle Under-steers Then Over-steers” has been added to the vehicle troubleshooting guide to describe steps to avoid twitchy handling on bumpy surfaces.

A new section “The Vehicle Never Goes Beyond First Gear” has been added to the vehicle troubleshooting guide to describe a common scenario that occurs when the automatic gearbox is given a latency time that is shorter than the time taken to complete a gear change.

A new section “The Vehicle Slows Down Unnaturally” has been added to the vehicle troubleshooting guide to describe the steps that can be taken to help the vehicle slow down more smoothly.

The section “SI Units” in the vehicle guide has been updated to include the new functon PxVehicleWheelsSimData::setMinLongSlipDenominator.

NVIDIA has announced that both PhysX SDK physics engine and APEX dynamics framework will offer support for next-generation Xbox One console from Microsoft.

“We are excited to extend our PhysX and APEX technologies to Microsoft’s Xbox One console”, said Mike Skolones, product manager for the PhysX SDK at NVIDIA.

“We look forward to the Xbox developer community taking advantage of PhysX and APEX along with Xbox One’s processing power, programmability and next-generation features to design cutting-edge games that deliver an unparalleled and ultra-realistic experience”

Earlier this year, it was also stated that PhysX SDK/APEX SDK will be available for Sony’s Playstation 4 console.

We assume that similar to PS4 case, PhysX for Xbox One will only use console’s CPU for physics calculations, at least at the beginning.

The following demo is quite interesting – it is showcasing real-time particle simulation, using APEX Turbulence module and CryEngine from Crytek.

This one should be approached carefully: it is not the official feature of the CryEngine, more like a proof of concept of how APEX can be utilized in non-PhysX SDK based game engine.

Demo is using custom particle system (simplified version of the one from PhysX SDK) and Turbulence driven velocity fields to control particle motion. Interactions with level geometry and rigid body objects are also supported.

Such technology may offer some interesting new possibilities for GPU PhysX games.