Free source code access for Windows, Linux, OS X and Android.
Real-time simulation and rendering of realistic hair and fur
Epic Games has announced, that their highly anticipated Unreal Engine 4 is now available for developers, with a very friendly licensing model (which even includes full C++ source code) – only $19 per month, plus 5% of gross revenue from any commercial product.
PhysX (APEX) Particles module will be used for impact debris effects on “concrete, grass, soil, wood, sand and the like” surfaces, while NVIDIA (APEX) Turbulence module will provide “simulation and rendering of physically correct smoke, dust and other fluid dynamics effects“. As the result:
Engine exhaust, smoke from explosions, dust from falling debris and spinning helicopter rotors can interact with the rest of the environment, both static and dynamic. Combined with PhysX particles, Turbulence provides a 1-2 punch of dynamism and realism.
As interesting note, it seems that NVIDIA as expanding the strategy of providing GPU accelerated PhysX effects in titles without native (core-physics) PhysX SDK integration, which potentially means that they can be adopted by any game or engine. Combined new core-PhysX integrations (such as UE4 with default PhysX 3, Clothing and Destruction implementation), such strategy can yield positive results on the amount of GPU PhysX titles.
In comparison to PhysX 2.8 branch, PhysX 3 will bring a significant performance improvements and a broad amount of new features, such as advanced vehicle module, new cloth solver, reworked scene queries and CCD systems, full multi-threading support, etc.
This PSS release adds support for Maxwell based GPUs, such as GTX 750 and GTX 750 Ti.
Real-time simulation and rendering of realistic hair/fur, consisting of multiple strands, is gettng much attention these days – one can easily name a TressFX solution, developed by AMD.
A competitive response from NVIDIA, new hair and fur simulation technology, which is now officially called NVIDIA HairWorks, was firstly showcased at The Witcher 3 presentation half a year ago and recently used in an actual game title – Call of Duty: Ghosts – to provide “Dynamic Fur” simulation for animal characters.
In comparison to other GPU accelerated physics features, Dynamic Fur was implemented through DirectCompute, which opens it for AMD users as well.
Tae-Yong Kim, physics programmer at NVIDIA, has agreed to answer some of our questions about HairWorks solution in general, and Call of Duty: Ghosts integration in particular.
After the latter update, PC version of the Assassin’s Creed IV: Black Flag (AC IV) has became the first Ubisoft’s game that implements GPU accelerated PhysX effects.
In the Black Flag, GPU PhysX support was shaped into volumetric particle effects (“PhysX Particles“), implemented through the APEX Turbulence module.
Bearing in mind that Assassin’s Creed series is already using competitive physics solution, Havok Physics engine, it was certanly an interesting technical task.
Semen Kovalev, Producer of Assassin’s Creed IV for PC at Ubisoft Kiev, was kind enough to share company’s experience on the PhysX integration process.
PhysXInfo.com: What kind of GPU accelerated physics effects can be found in Assassin’s Creed IV: Black Flag?
Semen Kovalev: In Assassin’s Creed IV: Black Flag, our development team decided to focus on adding physical smoke effects to the game. The smoke effects are present in a variety of forms such as smoke from flintlock pistol or musket shots, smoke bombs.
GPU PhysX effects, in a form of APEX Turbulence based smoke, are now available in the PC version of the Assassin’s Creed IV: Black Flag title.
Update: Adding GPU PhysX support to Assassin’s Creed IV – interview with Ubisoft Kiev
We have prepared a short comparison video to showcase the effects.
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.
New major APEX SDK 1.3 release is now available for public download.
Update: APEX SDK 1.3.1 released
1.3 version is featuring support for newest PhysX SDK 3.3.0 and also includes variety of improvements and new features for APEX modules.
Please note that corresponding authoring tools are required – PhysXLab 1.3 and DCC plug-ins 3.0
|APEX SDK 1.3: Feature Highlights|
APEX 1.3 now features a single Legacy Module (APEX_Legacy).
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.
APEX Destruction and APEX Clothing modules can now utilize Render Proxies.
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.
For those developers who are not ready yet to switch to 3.3 branch of the PhysX engine, NVIDIA has prepared several bug-fixing releases – PhysX SDK 3.2.5, APEX SDK 1.2.5 and corresponding tools.
Update: APEX SDK 1.3 is available
|PhysX SDK 3.2.5: Release Notes|
- 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.
- 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.
However, in comparison to the major 1.x -> 2.x rewrite, round “3.0″ version number has not brought any significant changes to PhysX plug-ins – remaining 2.9.x digits were simply reserved for possible APEX 1.2.x branch updates.
And if you have missed latest additions to PhysX plug-ins, like introduction of the APEX Destruction authoring pipeline, you can check it here.
|PhysX Plug-in 3.0 for 3ds Max: Release Notes|
- New Features
- Using APEX 1.3.0, SDK 3.3.0 (SDK 2.8 is not supported any more).
- Deprecated UI for SDK 2x.
- Avoid generating multiple materials when they are with the same parameters.
- Destruction: Behavior Groups Management.
- Fix: Wrong volume calculation issue in Rigid body.
- Make exporter dialog from File -> Export also support .Apx and .Apb.
- Fix: TetherStiffness range. Set tetherStiffness to 1.0 – relax just as ClothingTool uses 1.0 – mTetherStretchiness.
- Fix: 2 UI updating issue introduced in CL 9122.
- Fix: Hammer icon.
- Some fixes for debug render in fast viewer.
- Fix: Apex render after rewind scene in ccViewer.
- Fix: Menu bug with Forces part.
- Fix: Kinematic animation in fast viewer for non-integer start frame.
- Sort bone list by name, improve bone indices in clothing asset.
- Fix: After painting on lod, lod node will fail to restore previous shading mode.
- Fix: LOD crash bug – switching lod during simulation crashes max.
- Fix: Wrong exporter file name like “C:\export\nc.PxProj.PXPROJ”.
- Fix: Fast viewer for precision sensitive Domino sample case.
- Fix: InitialSwing issue with SnailGames’ sample.