A simple CPU driven hair system with an OpenGL renderer. Qt 5 used as the base framework.
The hair system is based on discrete particles simulation and virtual springs.
- Control the camera (
WASD
keys for movement, andmouse left click
+mouse movement
for orientation). - Move the head/rope anchor points (
mouse right click
+mouse movement
) - Numerical solvers implemented:
- Euler
- Semi-implicit Euler
- Verlet
- Collider types implemented:
- Sphere
- Plane
- Triangle
- Force fields implemented:
- Gravity
- Drag
- Implemented spring force between particles.
- Some particles scape the box, or get into the sphere, on the edges/vertices. This is due to not checking for a collision again once the particle has been corrected. This can be easy fix at the cost of performance.
The software requires the following libraries to be installed:
- GLEW
- Eigen
- QT 5
Clone the repository:
git clone https://github.com/GerardMT/Hair
cd Hair
Compile the code:
cd src
qmake-qt5
make
The builds can be found at build/
.
Once build, run the project from the build directory:
cd ../build/release/
./hair
Have a look at my other physics based projects:
If you want to fork this project I recommend cloning Cloth, which includes all the code from Particles and Hair, including some improvements.