Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nixon-voxell/GPUClothSimulationInUnity
Trying to replicate what this legend did: https://youtu.be/kCGHXlLR3l8
https://github.com/nixon-voxell/GPUClothSimulationInUnity
cloth cloth-simulation compute-shader compute-shaders gpu-accelerated-library gpu-cloth-simulation gpu-computing pbd position-based-dynamics
Last synced: 3 months ago
JSON representation
Trying to replicate what this legend did: https://youtu.be/kCGHXlLR3l8
- Host: GitHub
- URL: https://github.com/nixon-voxell/GPUClothSimulationInUnity
- Owner: nixon-voxell
- License: mit
- Archived: true
- Created: 2020-06-03T12:13:08.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-10-17T05:51:56.000Z (about 2 years ago)
- Last Synced: 2024-05-23T07:55:10.451Z (6 months ago)
- Topics: cloth, cloth-simulation, compute-shader, compute-shaders, gpu-accelerated-library, gpu-cloth-simulation, gpu-computing, pbd, position-based-dynamics
- Language: C#
- Homepage:
- Size: 201 MB
- Stars: 160
- Watchers: 7
- Forks: 14
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
GPU Cloth Simulation For Real-time Application
---This repository is still currently under development, so everything is still in testing mode. A lot of things will break, download at your own risk :/
> *Disclaimer: This project is in a paused state so there won't be more updates. In the future, if there are any changes to this project, I will post an issue update on this repository. Stay tune!*
My goal is to replicate what this legend did: https://youtu.be/kCGHXlLR3l8 (A smooth and interactive cloth simulation)
Currently, my cloth simulation uses Postion Based Dynamics and supports:
- Distance Constraint
- Bending Constraint
- Point Triangle Distance Constraint (Self Collision)
- Aerodynamics (Wind Effect)Features comming soon:
- Vivace Gauss Seidel Method for optimization on GPU (random graph coloring)
- Primitive Shape Collision (Sphere, Box and Capsule)Check out my [YouTube Playlist](https://www.youtube.com/playlist?list=PLlnBGPe6GFdP8So9oS0YVoVjqkmJoREI_) where I record my journey on how I approach this problem!
Support me on [Patreon](https://www.patreon.com/voxelltech) so that I can allocate more time to work on this project!
How to use?
---
*Note: The GPU version is not fully developed yet, this tutorial section will not work for the GPU version.
1. Create a mesh in [Blender](https://blender.org) that you want to simulate.
2. Use my custom Blender Addon - [Blender Mesh to JSON](https://github.com/voxell-tech/BlenderMeshToJSON) to transform your mesh into PBD form and export it into your Unity's `StreamingAssets` folder.
3. Create an empty GameObject in Unity.
4. Drag and drop `CPUClothSimulation.cs` or `GPUClothSimulation.cs` script onto the GameObject. (Check [Cloth Configurations](#cloth-configurations) for more cloth parameters' information.)
5. Select the correct JSON file that the Blender Cloth Exporter Tool exports using the button - `Select JSON File`.
6. Press the button - `Load Data from JSON`.
7. Put in your `Front Material` and `Back Material`.
8. Press `Build Mesh` to build the mesh that you have modeled in Blender.
9. Press `Create Back Side` to build the other side of the mesh.
10. Press `Apply Materials` to apply materials on both sides.Cloth Configurations
---
These are the similar parameters in both CPU and GPU Cloth Simulation:![Materials](./Pictures/materials.PNG)
This determines the front material and back material for the cloth.
![ClothSimParam](./Pictures/cloth_simulation_parameters.PNG)
Tweak these parameters to change the behaviour for the cloth.
1. Gravity: Constant acceleration.
2. Compression Stiffness: Coefficient for distance constraint when 2 particles are too close together.
3. Stretch Stiffness: Coefficient for distance constraint when 2 particles are too far away.
4. Bending Stiffness: Coefficient for bending constraint when 2 neighbor triangles are not at their rest angle.
5. Thickness: Cloth thickness for all collisions.
6. Damping: Multiplier of velocity for every simulation to reduce velocity (as air resistance).![Simulation](./Pictures/simulation.PNG)
Tweak these parameters to balance between accuracy and performance.
1. Iteration Steps: Number of iterations to solve constraints for every simulation.
2. Delta Time Step: Time pass between 2 simulations.
3. Start Simulation On Play: Choose if you want to start the simulation once you enter play mode.License
---
This project is under MIT License.