APEX Clothing
From PhysX Wiki
| APEX Clothing | |
| |
| Latest version(s): | 1.1 |
| Authoring application(s): | PhysX plug-in for 3ds Max PhysX plug-in for Maya Clothing Tool |
| Capabilities: | Cloth and clothing simulation |
| GPU acceleration: | Cloth |
| Official page | |
APEX Clothing (APEX C) is a module responsible for authoring and real-time simulation of dynamic clothing for game characters. APEX C is a part of the NVIDIA APEX Framework.
Currently, APEX Clothing is supporting PC + CPU, PC + NVIDIA GPU, Xbox 360 and PS3 platforms.
APEX Clothing 1.0 was released for public as part of APEX 1.0 Beta, and now can be used in any game/engine, free of charge.
Contents |
Overview
Clothing module is using so-called constrained cloth functionality (or Hybrid Cloth), introduced in PhysX SDK 2.8.3. In this case physical mesh is constrained to the animated mesh and is fully controlled by the artist, while regular simulated cloth behaves too unpredictable.
Authoring tools are provided to create a physics meshes from the given graphics mesh. Parts of the character clothing that are chosen to be simulated cloth are not directly skinned to the animation skeleton, instead, a few steps are performed to constrain the physics mesh to the animation. This provides the region within each vertex of the simulated cloth is allowed to move, since created physics mesh is skinned to the animated skeleton. After simulation the graphics mesh is transformed with the simulated physics mesh (mesh-mesh skinning).
Because of this approach, APEX Clothing in not very well suited for simulation of free-hanging cloth objects (banners, flags, etc) - some NxCloth functionality, like tearing, two-way interaction with rigid bodies and pressure, is not supported.
In addition, APEX C includes softbody simulation, but this feature is not fully complete yet.
Authoring component
Several applications can be used to create APEX Clothing assets: PhysX plug-in for Maya, PhysX plug-in for 3ds Max and Clothing Tool - standalone GUI authoring tool.
Generally, authoring pipeline of Clothing assets can be devided into several stages:
- Generating physical mesh for the cloth (from graphical mesh, iso-mesh or custom mesh)
- Specifying Max Distance value per vertex. Max Distance is the keystone of constrained cloth approach - it defines how far each simulated vertex is allowed to move away from its skinned position.
- "Painting" secondary parameters, like Latch-to-Nearest (this one allows to simulate two-layered cloth as one mesh).
- Setting up collision with the character - either by using kinematic rigid body skeleton, or simplified animated mesh collision (Backstop).
- Determining simulation settings and cloth parameters - LOD, solver iterations, stifness, damping, self-collision, etc
After Clothing asset is complete, it needs to be exported (APEX is using it's own .apb and .apx formats), so it can be deserialized at runtime.
Several examples of authoring process can be viewed here
Runtime component
The ClothingAsset object contains all the data coming from the authoring pipeline, like the information about bones, physical meshes, graphical meshes, the mapping between multiple physical meshes and Clothing material parameters.
The ClothingActor, instance of the ClothingAsset, is placed into a scene where it is simulated and rendered. The actor state is updated with the character animation that is provided with the current bone transformations. Skinned positions of the physical mesh are updated accordingly as well as the collision volumes that clothing will collide with.
APEX Clothing runtime is supporting Physical LoD feature - in order to fit a given resource budget (defined by developers according to platform capabilities), ClothingActor can decrease the Max Distance of the simulated vertices or remove them from simulation completely. In addition, it is possible to use physical/graphical meshes with different resolution and switch them dynamically.
Supplementary mechanisms, like gravity compensation, hard stretch limitation and manual substepping are used to reduce cloth stretchiness and ensure simulation stability.
GPU acceleration feature and multithreaded optimizations (for PhysX SDK 2.x - throught compartments) are available as well. On PS3 platform clothing actors can utilize multiple SPUs for simulation.
Current version APEX Clothing module is based on PhysX SDK 2.8.4.
Other features:
- Per-actor scaling
- Teleportation without simulation reset
- Vertex velocity callback
- Support for morph targets
Version History
| Version | Release date | Description |
| APEX Clothing 1.1 | Feb 15, 2012 | Updated public release. Adds per-actor scaling, asynchronous cooking, velocity callback, support for morph targets and adaptive simulation frequence. Uses PhysX SDK 2.8.4 |
| APEX Clothing 1.0 | Mar 24, 2011 | First public release. Features several improvements: faster mesh-mesh skinning, Max Distance scaling and per-actor tasks for fine grained parallelization. Uses PhysX SDK 2.8.4 |
| APEX Clothing 0.9 | N/A | Initial internal release. Uses PhysX SDK 2.8.3 |
Games and game engine integrations
APEX Clothing module was used in following games:
- Detailed clothing on characters (Bruce Wayne, thugs) on PC (with GPU PhysX enabled) and hair-simulation during pre-rendered cutscenes on consoles. Environmetal cloth: dynamic papers, leaves, posters, banknotes (only with GPU PhysX enabled).
- Minor cloth objects - curtains, "dynamic" newspapers and tents. Part of GPU PhysX effects.
- EvE Online
- Used in character creator, introduced as part of Incursion add-on. Clothing and hair simulation. Is calculated on CPU, no GPU acceleration support.
- Clothing on main character and several NPC. PC version only. GPU PhysX effect.
- APEX Clothing in Mafia II - comparison video.
APEX Clothing module is integrated into following engines:
- Unreal Engine 3/Unreal Development Kit (Epic Games)
- Carbon (CCP Games)
- Illusion Engine (2K Czech)
- Hero Engine (Simutronics)
Gallery
Other notes
See also
External links
- NVIDIA APEX - official page.
- Clothing simulation solutions for games
Tutorials
- APEX Clothing tutorials - 3ds Max
- APEX Clothing tutorials - Maya
- APEX Clothing tutorial: from Maya to UDK
- New APEX Clothing tutorials released
- Supplementary files for NVIDIA tutorials (textures, models, etc)
| |||||||||||||||||
