diff options
author | Luca Rood <dev@lucarood.com> | 2018-09-26 18:18:16 +0300 |
---|---|---|
committer | Luca Rood <dev@lucarood.com> | 2018-09-26 18:49:40 +0300 |
commit | 0666ece2e2f96571200d693d9d7bee1ca72d026f (patch) | |
tree | d19df74e5f36d4a745dd5ea917ccf840a6e61923 /source/blender/blenkernel/BKE_cloth.h | |
parent | a27d97d1b737037e7c09d3052ba5c644588024ec (diff) |
Cloth: Collision improvements
This commit includes several performance, stability, and reliability
improvements to cloth collisions.
Most notably:
* The implementation of a new self-collisions system.
* Multithreading of collision detection.
* Implementation of single sided collisions and normal overrides.
* Replacement of the `plNearestPoints` function from Bullet with a
dedicated solution.
Further, this also includes several bug fixes, and algorithmic
improvements.
Reviewed By: brecht
Differential Revision: http://developer.blender.org/D3712
Diffstat (limited to 'source/blender/blenkernel/BKE_cloth.h')
-rw-r--r-- | source/blender/blenkernel/BKE_cloth.h | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/source/blender/blenkernel/BKE_cloth.h b/source/blender/blenkernel/BKE_cloth.h index 423d7014918..d0a08060180 100644 --- a/source/blender/blenkernel/BKE_cloth.h +++ b/source/blender/blenkernel/BKE_cloth.h @@ -117,6 +117,7 @@ typedef struct ClothVertex { float goal; /* goal, from SB */ float impulse[3]; /* used in collision.c */ float xrest[3]; /* rest position of the vertex */ + float dcvel[3]; /* delta velocities to be applied by collision response */ unsigned int impulse_count; /* same as above */ float avg_spring_len; /* average length of connected springs */ float struct_stiff; @@ -222,8 +223,7 @@ typedef struct ColliderContacts { } ColliderContacts; // needed for implicit.c -int cloth_bvh_objcollision (struct Depsgraph *depsgraph, struct Object *ob, struct ClothModifierData *clmd, float step, float dt ); -int cloth_points_objcollision(struct Depsgraph *depsgraph, struct Object *ob, struct ClothModifierData *clmd, float step, float dt); +int cloth_bvh_collision(struct Depsgraph *depsgraph, struct Object *ob, struct ClothModifierData *clmd, float step, float dt); void cloth_find_point_contacts(struct Depsgraph *depsgraph, struct Object *ob, struct ClothModifierData *clmd, float step, float dt, ColliderContacts **r_collider_contacts, int *r_totcolliders); @@ -244,8 +244,7 @@ void clothModifier_do(struct ClothModifierData *clmd, struct Depsgraph *depsgrap int cloth_uses_vgroup(struct ClothModifierData *clmd); // needed for collision.c -void bvhtree_update_from_cloth(struct ClothModifierData *clmd, bool moving); -void bvhselftree_update_from_cloth(struct ClothModifierData *clmd, bool moving); +void bvhtree_update_from_cloth(struct ClothModifierData *clmd, bool moving, bool self); // needed for button_object.c void cloth_clear_cache( |