Free source code access for Windows, Linux, OS X and Android.
Real-time simulation and rendering of realistic hair and fur
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).
- 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|
- 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.
Final release of the new PhysX SDK 3.3 is now available for public, after two rounds of Beta Testing.
Update: PhysX SDK 3.3.1 is available
If you are not familiar with SDK 3.3 branch yet, we recommend you to refer Beta-1 and Beta-2 previews for features description, and for “The Evolution of the PhysX SDK” article for the performance improvements (and there are plenty) data.
As compared with PhysX 3.3 Beta-2, final release is including a set of bug-fixes among with minor improvements, and also more detailed documentation.
Full SDK 3.3.0 Release Notes can be viewed here.
PhysX SDK 3.3.0 Final Release (for PC, Linux, OSX, Android and WinRT) is available for download through APEX/PhysX Registered Developer Program (our registration guide).
New 9.13.0927 PhysX System Software release is now available alongside with 334.35 GPU Drivers.
Official Release Notes are unknown.
You can download PSS 9.13.0927 from our server (35 mb)
Thanks to Stefan for the link.
As promised earlier, PC version of Call of Duty: Ghosts title was recently patched to include a set of GPU accelerated physics effects.
Update: Dynamic Fur – technology overview and comparison video
New NVIDIA’s dynamic hair and fur simulation technology is making a debut in this game. It allows to realistically render and simulate multiple strands of fur on animals characters such as Riley the Dog.
In addition to the nice look (especially in motion), Dynamic Fur feature is utilizing DX Compute, according to the information we have recieved, and thus should be available to AMD users as well.
According to the “Graphics & Performance Guide” article, published at GeForce.com, upcoming PC version of the Assassin’s Creed IV: Black Flag title will not only feature graphics enhancements such as HBAO+ , TXAA anti-aliasing or improved shadows, but also include GPU accelerated PhysX effects in a form of APEX Turbulence based smoke and steam.
If you played Batman: Arkham Origins, or checked out our “Batman: Arkham Origins Graphics & Performance Guide”, you’ll have seen the game-changing benefits our new GPU-accelerated PhysX APEX Particle system brought to the Batman prequel. In the not too distant future, an Assassin’s Creed IV: Black Flag game update will introduce APEX Particles that are manipulated by external forces such as gravity, wind, character movement, and explosions, courtesy of the APEX Turbulence system.
As in Batman: Arkham Origins, Assassin’s Creed IV’s APEX Particles will be further enhanced by the addition of Particle Shadow Mapping (PSM), which enables select particle effects to cast shadows, and self-shadow one another. This is particularly beneficial for thick, heavy smoke effects, such as Kenway’s smoke bomb, instantly emphasizing the density of the effect to the viewer, further increasing image quality.
However, one may notice that Turbulence effects won’t be avaialble at launch, but added later on in a patch.