Cloth Dynamics is one of the fastest realtime GPU based cloth simulation systems for Unity3D.
It should run on all next-gen mainstream platforms: PC, Mac, Linux, Consoles and Mobile.
Features:
Fast and solid GPU cloth simulation (with and without skinned meshes)
Multi collision system with PBD for mesh collision and SDFs for primitives (Sphere, Cube,…)
Automatic Bone Spheres system creates primitive collision objects for characters in one click
Modern Mobile support (limited to primitives collision only)
GPU Skinning (with Unity standard or Dual Quaternion Skinning)
Automatic Skinning
Garment Mesh Creator
LOD system
HDRP, URP and Builtin-RP supported
Full source code
Complete content from the video is included in the package
Why creating a new cloth simulation asset:
I’m currently working on a next-gen game and needed a fast cloth sim solution for my characters. So, I tested different cloth sim assets from the store and also a new beta gpu based cloth system, which will be soon released for unity. However, all of them were eating up my framerate, so I decided to create a fast and “simple” GPU cloth system. I started with a free gpu cloth source and extended it for my needs, out came “Cloth Dynamics”.
Fair refund policy and price:
I don’t like assets where you can’t get your money back, if you are not happy with them. So, I decided to give every customer the opportunity to get one refund without questions ask, when he/she wants to return it in 14 days. So you have 14 days to test the product. Also the price will be quite fair.
Edit: Unity changed the refund policy:
Users can request refunds for specific assets from the Order History page.
The new refund flow will require users to submit a reason for each request. Refunds will only be granted automatically in cases where the user did not download a package purchased less than 14 days prior. In all other cases, the request will be sent to Unity Customer Support, where they’ll be handled independently, following the current refund policy.
I already created a short documentation with FAQs at the end:
Hi,
I will soon upload a daz model video. In this current video there are only free models that will be included in the package. The price will be around 20-30. I also tested different cloth sims, but I was not happy with the performance.
I’m still working on improving the collision, also the mesh proxy needs some improvement, the rest is fine.
So, release date might be around January-February. Beta testing currently is quite complicated because I don’t want to share the full source code with the beta testers (and I can’t precompile the compute shaders in Unity).
Maybe I can make a “import your own” mesh demo, if it’s not too complicated. I really like to focus on finishing this, so a test demo might come out after the release.
thanks for the daz3d video I was wondering do you have plans on adding a wind physics
example frame :30-50 video
something like this unreal engine flag video
Hi, in the first video / demo is also a flag example included or do you mean a tutorial video?
The hitman example is a great idea, I will try that out, thanks!
This looks very interesting! I am working on the exact same thing, using the same stuff (DQS, PBD, both from same projects as you). Would buy this package instantly to save some time, as you have integrated stuff I have not done yet (self collision).
@Qleenie : Yes, I added some more stuff, like surface collision detection which is more stabil. Thanks for your interest.
@vertexx : Unity cloth is also not bad, the performance is ok, but the vertex setup is not very user friendly so I decided to make my own system. You can create all these collision colliders automatically with Cloth Dynamics and use Round cones which are basically two spheres connected to one collider, which is more efficient that creating many spheres.
@skiwee : I didn’t try Magica Cloth, but I’m sure my system is faster when you have meshes with more vertices, you can also get a vertex to vertex (or vertex to triangle) collision with my system, not sure if that is possible with Magica.
My system is more similar to this one: https://deformdynamics.com/
Btw.: Sorry for the delay! I’m trying to improve the collision system a bit, because currently if you have fast animations the underlying mesh might be visible though the cloth mesh, so I need to fix this before the release. It’s possible to hide the mesh part under the cloth via shader, but it would be much nicer if the cloth will be more correctly moving with the animations.
Do you have an ETA for the release?
On previous post you said the release date might be around January-February.
I have a proyect on March and I want to know if it’s possible to include your solution on this project.
Hi, sorry for keeping you waiting!
Good news, I could finish fixing all my old bugs and I will not add new features to the system anymore until release.
The bad news, there is still a collision bug in the standalone app, when a scene gets loaded and there are more than one cloth sims running (does not happen all the time but sometimes).
After fixing this bug, I will release the first version.
Here is a new test video, the auto skinning is done in Unity, so normally I would do it in Blender, this is just for testing:
^
This shows a test video of the GPU Cloth Dynamics for Unity, it handles four cloth simulations at the same time at runtime with about ~90 fps (depending on the scene and cloth setup). In the background there are also cloth sims deactivated and running only as skinned meshes. If the camera comes closer the cloth simulation gets activated.
Good news everyone, I fixed the bug in the standalone, so no more bug fixing for now. Next steps are cleaning up and sending it to the asset store. Furthermore, I will make some tutorial videos. Cheers!
Congrats on the release! Could you perhaps add some more details on performance? A showcase with some background scenery as additional GPU load plus a couple of character would make for a more reasonable performance test. Also perhaps a sort of stress test with a larger number of characters? Oh and another quick question - what do you do with the result from the compute shader, are you sending that back to the CPU? Also, could you perhaps create a video showing the setup process of taking a regular skinned character (with clothing) and setting it up to work with your asset?
Hi one_one,
thanks! Good questions! Did you already download the Windows Build Demo and test it on your computer? If you press Win+G or use the Nvidia Overlay, you can get an FPS display.
It’s really not that simple to showcase all the scenarios, because also the Builtin and HDRP setups run on a different FPS.
In the demo there is a setup with 6 characters each has two cloth sims using the LOD switch (for turning the cloth sim off in the background). Also the multi belly dancer scene has 3 character sims running at the same time. But basically I would recommend not to use so many sims at the same time. Also it makes sense to pack cloth parts together e.g. shirt plus trousers as one sim for one character. Cloth Dynamics is focused on character clothes.
In all the test scenes I get an FPS count between 60 and 90 fps with FullHD Res, I have an GTX 1080, a i7-3820 CPU @ 3.60GHz and 32GB RAM.
The compute shader results get send directly to the cloth shader of the cloth materials. So there is no CPU readback. However, I used an Async GPU Readback for calculating the bounding box position of the cloth vertices, so the voxel grid can be positioned around the cloth, but this does not affect the performance and can be also be switched off if your cloth stays more or less in the same place.
Currently most performance loss accrues when you use too many primitive colliders per character or you have too many vertices colliding at the same place (see stress test).
I will soon post some video tutorials, sorry for the delay (again) !
All the best,
Chris
I just found another small bug in the new release, there is an issue with the collision of the capsule-collider, I already fixed the bug, but you need to wait until it’s online in the store.
Also there might be some material-missing-errors, just tell me if you have them, I will try and fix it in the next release!