APEX Clothing Release Notes

APEX Clothing 1.3.3

New Features

Removed

Optimizations

Fixes

Known issues

  • If asyncFetchResults is false, the application must have more than one worker thread to avoid the possiblity of deadlock.
  • The RecomputeSubmeshes visualization flag is not functional.
  • It is not deterministic whether the new or the old result is returned in acquireRenderProxy on NxClothingActor, if it is called between simulate and fetchResults, when running with PhysX 3.x.

APEX Clothing 1.3.2

New Features

  • It is now safe to call updateRenderResources on the render proxy in parallel, for example in the render thread, if the APEX SDK parameter ‘renderMeshActorLoadMaterialsLazily’ is set to false.
  • Added support of partial custom physical meshes.

Removed

  • Physical LOD is deprecated. Will be removed next version.

Optimizations

  • Reduce the amount of data sent to PVD when clothing is in a scene.

Fixes

  • Fixed friction for GPU clothing.
  • Fix a race condition when running several clothing scenes in parallel.
  • Fixed clothing render proxy: now always return old result before fetch has been called.
  • Fixed self-collision jittering on scaled down actors: scale restpositions. Fixed debug rendering when scaled.
  • Fixed crash in cloth cooker.
  • Fixed initialization pose of clothing collisions when clothing actor uses local space simulation.
  • Fixed crash when a clothing actor with a NxClothingTriangleMesh switches LoD.
  • Fixed scaling of cloth collision planes.

Known issues

  • If asyncFetchResults is false, the application must have more than one worker thread to avoid the possiblity of deadlock.
  • The RecomputeSubmeshes visualization flag is not functional.
  • It is not deterministic whether the new or the old result is returned in acquireRenderProxy on NxClothingActor, if it is called between simulate and fetchResults, when running with PhysX 3.x.

APEX Clothing 1.3.1

New Features

  • Added NxClothingActor::getSimulationVelocities()
  • ClothingTool: Some names were changed to match DCC plugin naming conventions.
  • Clothing triangle collision debug rendering: render ignored triangles red.
  • Clamp to 500 collision triangles on GPU to avoid hitting shared memory limit.
  • Added API to add and remove triangles from an NxClothingTriangleMesh at runtime.
  • Added friction to convex collisions against cloth.
  • No longer deprecated: updateMaxDistanceScale, getPose, setWind, setMaxDistanceBlendTime, getMaxDistanceBlendTime, setLODWeights

Removed

  • Removed unused API NxClothingUserRecompute.
  • Unused zeroStretchStiffness parameter has been removed.

Fixes

  • Fixed incorrect scaling in NxClothingAssetAuthoring::applyTransformation.
  • Fixed infinities generated in NxClothingAssetAuthoring::applyTransformation.
  • Fixed bug that could cause clothing material to be set every frame.
  • Fixed race condition when creating/deleting cloths in parallel.
  • NxClothingActor methods getSimulationPositions and getSimulationNormals now block when asyncFetchResults is set to true.
  • Fixed crash when calling releaseGraphicalData on a clothing asset (applies if application does its own skinning)
  • Fixed a 3x clothing cooker crash.
  • Fixed a bug where APEX could wake frozen cloth, causing APEX to output a “Cloth has not stayed static” message.
  • Fixed an issue when using multiple GPU dispatchers with GPU clothing.

Known issues

  • If asyncFetchResults is false, the application must have more than one worker thread to avoid the possiblity of deadlock.
  • The RecomputeSubmeshes and RecomputeVertices visualization flags are not functional.
  • It is not deterministic whether the new or the old result is returned in acquireRenderProxy on NxClothingActor, if it is called between simulate and fetchResults, when running with PhysX 3.x.

APEX Clothing 1.3

New Features

  • New render API: NxClothingRenderProxy to allow easier rendering with render thread (buffered render data)
  • Added PVD object debugging support for clothing.
  • Visualization of clothing in PVD is possible by connecting to PVD with object debugging enabled, and then enabling “Constraints” visualization in the PVD Preferences.

Fixes

  • Clothing GPU memory usage now included with the rest of the heap stats from the CudaMemoryManager.
  • Changed asyncFetchResults to true by default to improve performance in many cases and avoid deadlock.
  • Fixed debug visualization of the PhysX 3x clothing material parameters. Added visualization of compressionRange and stretchRange parameters and length and cross-section fibers.

Known issues

  • If asyncFetchResults is false, the application must have more than one worker thread to avoid the possiblity of deadlock.
  • The RecomputeSubmeshes and RecomputeVertices visualization flags are not functional.

APEX Clothing 1.2.4

Fixes

  • Fixed issues with teleport and reset.
  • Fixed a crash in tangent computations.
  • Fixed an issue where tangent results were different for skinned tangents.

Known Issues

  • Summer dress sample (SimpleClothing scene 3) behaves differently on the GPU compared to the CPU.

APEX Clothing 1.2.3

New Features

  • Added solver iteration count to VISUALIZE_CLOTHING_SOLVER_MODE debug rendering.

Fixes

  • Fixed an issue with clothing simulation when simulate(0) is called.
  • Fixed a bug with normals for the case where assets have a significant amount of mesh-mesh skinned vertices
  • Fixed a simulation bug where collision failed for vertices close to the cloth bounds
  • Fixed a race condition when a lot of actors of the same asset are switched on and off (manually or by lod)

Removed

  • Removed support for the embedded 3x clothing solver on pre-Fermi GPUs.

APEX Clothing 1.2.2

New Features

  • New ClothingMeshSkinningMap API to get mesh skinning information, so it can be done in the application.
  • New API to add collision objects to a clothing actor. This can be used to implement collision with world objects.

APEX Clothing 1.2.1

New Features

  • Support for convex collision added to 3x clothing solver.

    Limitation: only a total of 32 planes per clothing actor is supported.

  • Self collision parameters moved to the ClothingMaterialLibrary NxParameterized interface. Removed NxClothingAssetAuthoring::setSimulationSelfcollision() and NxClothingAssetAuthoring::setSimulationSelfcollisionThickness().

Fixes

  • Fixed a Clothing Tool issue where the “Generate Tangent Space” button could generate several warning dialogs for certain older clothing assets.

Known Issues

  • Running multiple NxApexScenes simultaneously is only supported with the 3x solver. The 2.8 solver can generate writelock NxScene access failures.
  • The new 3x cloth solver does not send debug visualization data to PhysX Visual Debugger.
  • GPU memory allocated by the 3x clothing solver is not reported in the heap stats from the CudaMemoryManager.

APEX Clothing 1.2

New Features

  • Support for PhysX 3x cloth solver. Even builds with PhysX 2.8.x will be able to run the new solver if the ClothingPhysX3 module is present (will be autoloaded).
  • Removed bitangent semantic for rendering. All rendered data now uses float4 for the tangent semantic, tangent.w being the sign of the cross product of normal and tangent.
  • Local space simulation. The user can either chose a local space or specify a bone in the hierarchy to which the simulation will be done locally.
  • Tapered capsules as collision volumes. This will only work with PhysX 3x solver.
  • Velocity shader can take positions and velocities now. Velocities can be modified by the shader.
  • Added several PhysX 3x exclusive clothing material parameters: Compression & streching stiffness for stretching, bending and shearing constraints, inertia scale & drag (for localspace sim), mass scale for better collision handling.
  • Turned ‘parallelize fetch results’ on by default (in module descriptor) and added functionality to run the additional fetch results work delayed until the first actor gets rendered.

Known Issues

  • Running multiple NxApexScenes simultaneously is only supported with the 3x solver. The 2.8 solver can generate writelock NxScene access failures.
  • The new 3x cloth solver does not send debug visualization data to PhysX Visual Debugger.
  • The “Generate Tangent Space” button in Clothing Tool can generate several warning dialogs for certain older clothing assets. (Fixed in 1.2.1)

APEX Clothing 1.1

New Features

  • Per-Actor scaling. Each actor can have an individual scale and simulates properly.
  • Asynchronous cooking. When several actors with different per-actor scale are created, cooking will be delayed if another actor already started cooking. While waiting, actors will not be simulated.
  • Manual substepping: A PhysX scene that will run multiple substeps is now handled properly by clothing. Interpolated simulation meshes will be generated for each individual substep to remove simulation artifacts caused by substepping. Caution: This feature causes problems if used together with 2.8.x physX particles. When enabled, APEX calls simulate/fetchResults on the corresponding physX scene several times. PhysX particles have buffers that need to be read from the application after each fetchResults (deleted particle IDs), which is not possible in this case. Use allowApexWorkBetweenSubsteps to enable/disable the feature.
  • Teleport without reset: Clothing Actors can now be teleported without all the vertices being reset to the animated positions. This will only lead to good results if only the pose of the actor and not the state of the animation is changed.
  • Frozen state: Clothing can be frozen in a given state and will cease simulation. It can then be woken again in the same state. This contrasts the regular way where re-enabled clothing starts from the animated state instead.
  • Velocity Callback: A user callback that allows to read and write the velocity values of every simulated vertex. Can be used to play sound depending on certain changes in velocity or to implement i.e. a wind effect.
  • Support for morph targets (also known as blendshapes): At actor creation a set of vertex displacements can be used to modify the mesh.
  • Platform Tags: Each graphical LOD can have a list of strings attached. When converting the .apx/.apb files to a given platform, LODs that don’t match a certain pattern can be removed based on this. This allows for reducing asset size by removing LODs that are unsuited for a particular platform.
  • Correct Simulation Normals: Vertices that are on the border of the simulated and non-simulated part of the physical mesh can have wrongly calculated normals. This setting will try to correct for that.
  • Adaptive Target Frequency: Reduces the high frequency jittering that happens due to slightly varying timesteps.
  • Pressure: Closed cloth meshes can be filled with pressure.
  • Vertex Velocity Clamp: Adds a maximum velocity in all 6 major axis and clamps all velocities to those.

Improvements

  • Switching of graphical LoDs has been improved in respect to copying position and velocity from the old to the new simulation mesh.

Removed

  • Legacy serialization is gone. Any old .aca file cannot be loaded anymore. They need to be converted to .apx/.apb using the 1.0 ParamTool instead.
  • Some API marked as deprecated has been deleted such as NxClothingActor::setFlags().
  • Removed separate NxClothingMaterialLibrary (.acml files) as an asset type. Materials are now integrated into the Clothing Asset file directly.
  • Parallel physics mesh skinning and parallel mesh-mesh skinning. The frame delay that was introduced by this feature made it useless to most applications.

APEX Clothing 1.0 Beta

New Features

  • New Mesh-Mesh skinning algorithm that is faster and produces more reliable results.
  • Max Distance can be scaled per clothing actor on top of all the physical lod features.

Improvements

  • Using per-actor Tasks to allow more fine grained parallelization.
  • NxClothingActor visibility can be toggled to save unnecessary computations in case where the actor is not visible.

Removed

  • Replaced NxClothingActorDesc and NxClothingPreviewDesc with parameterized objects.
  • Clothing Material Library has been deprecated. The separate asset is gone and has been merged with the clothing asset. The classes are still in place to load the .acml files, which get merged into the clothing asset immerdiately after the .aca has been loaded. After that both files can be replaced by a single clothing asset .apx/.apb

Known Issues

  • Clothing does not support running substeps. When doing so it will emit a warning and then just run as good as possible. This can lead to artifacts where vertex velocities can sometimes behave erratically.
  • NxClothingAssetAuthoring::setExportScale is not working anymore as it was designed to work with the removed binary serialization. As a replacement, NxClothingAssetAuthoring::applyTransformation() can be called before serialization, it apply a transformation and/or a scale to the asset, which can then be serialized with the new serialization.