diff options
author | Lukas Tönne <lukas.toenne@gmail.com> | 2014-11-14 18:48:01 +0300 |
---|---|---|
committer | Lukas Tönne <lukas.toenne@gmail.com> | 2015-01-20 11:30:08 +0300 |
commit | 325990ff6e57bfbac9c3aab5d12f13670f9ef246 (patch) | |
tree | 9b7bcd29864dd5cd1e5a937fa214e25dbb88baea /source/blender/physics | |
parent | faa112cd27bbce2498910e551373a37437513f7a (diff) |
Use dedicated debug values in cloth settings instead of abusing unused
other values.
Conflicts:
source/blender/physics/intern/BPH_mass_spring.cpp
Diffstat (limited to 'source/blender/physics')
-rw-r--r-- | source/blender/physics/intern/BPH_mass_spring.cpp | 2 | ||||
-rw-r--r-- | source/blender/physics/intern/hair_volume.cpp | 24 | ||||
-rw-r--r-- | source/blender/physics/intern/implicit.h | 4 |
3 files changed, 18 insertions, 12 deletions
diff --git a/source/blender/physics/intern/BPH_mass_spring.cpp b/source/blender/physics/intern/BPH_mass_spring.cpp index d85932c7161..ee2b7915caa 100644 --- a/source/blender/physics/intern/BPH_mass_spring.cpp +++ b/source/blender/physics/intern/BPH_mass_spring.cpp @@ -688,7 +688,9 @@ static void cloth_continuum_step(ClothModifierData *clmd, float dt) /* gather velocities & density */
if (smoothfac > 0.0f || density_strength > 0.0f) {
HairGrid *grid = BPH_hair_volume_create_vertex_grid(clmd->sim_parms->voxel_cell_size, gmin, gmax);
+
BPH_hair_volume_set_debug_data(grid, clmd->debug_data);
+ BPH_hair_volume_set_debug_value(grid, parms->debug1, parms->debug2, parms->debug3, parms->debug4);
cloth_continuum_fill_grid(grid, cloth);
diff --git a/source/blender/physics/intern/hair_volume.cpp b/source/blender/physics/intern/hair_volume.cpp index 5b885cd9fa3..4f2f6a33c52 100644 --- a/source/blender/physics/intern/hair_volume.cpp +++ b/source/blender/physics/intern/hair_volume.cpp @@ -93,7 +93,8 @@ typedef struct HairGrid { float cellsize, inv_cellsize; struct SimDebugData *debug_data; - int debug_value; + float debug1, debug2; + int debug3, debug4; } HairGrid; #define HAIR_GRID_INDEX_AXIS(vec, res, gmin, scale, axis) ( min_ii( max_ii( (int)((vec[axis] - gmin[axis]) * scale), 0), res[axis]-2 ) ) @@ -371,11 +372,6 @@ BLI_INLINE int major_axis_v3(const float v[3]) return a > b ? (a > c ? 0 : 2) : (b > c ? 1 : 2); } -void BPH_hair_volume_set_debug_value(HairGrid *grid, int debug_value) -{ - grid->debug_value = debug_value; -} - BLI_INLINE void hair_volume_add_segment_2D(HairGrid *grid, const float UNUSED(x1[3]), const float UNUSED(v1[3]), const float x2[3], const float v2[3], const float x3[3], const float v3[3], const float UNUSED(x4[3]), const float UNUSED(v4[3]), @@ -855,11 +851,11 @@ bool BPH_hair_volume_solve_divergence(HairGrid *grid, float dt, float target_den float pressure = p[u]; if (pressure > 0.0f) { - fac = CLAMPIS(pressure * target_strength, 0.0, 1.0); + fac = CLAMPIS(pressure * grid->debug1, 0.0, 1.0); interp_v3_v3v3(col, col0, colp, fac); } else { - fac = CLAMPIS(-pressure * target_strength, 0.0, 1.0); + fac = CLAMPIS(-pressure * grid->debug1, 0.0, 1.0); interp_v3_v3v3(col, col0, coln, fac); } if (fac > 0.05f) @@ -868,11 +864,11 @@ bool BPH_hair_volume_solve_divergence(HairGrid *grid, float dt, float target_den if (!is_margin) { float dvel[3]; sub_v3_v3v3(dvel, vert->velocity_smooth, vert->velocity); - BKE_sim_debug_data_add_vector(grid->debug_data, wloc, dvel, 1, 1, 1, "grid", hash_int_2d(5566, hash_int_2d(i, hash_int_2d(j, k)))); +// BKE_sim_debug_data_add_vector(grid->debug_data, wloc, dvel, 1, 1, 1, "grid", hash_int_2d(5566, hash_int_2d(i, hash_int_2d(j, k)))); } if (!is_margin) { - float d = CLAMPIS(vert->density * target_density, 0.0f, 1.0f); + float d = CLAMPIS(vert->density * grid->debug2, 0.0f, 1.0f); float col0[3] = {0.3, 0.3, 0.3}; float colp[3] = {0.0, 0.0, 1.0}; float col[3]; @@ -1039,6 +1035,14 @@ void BPH_hair_volume_set_debug_data(HairGrid *grid, SimDebugData *debug_data) BKE_sim_debug_data_clear_category(grid->debug_data, "grid"); } +void BPH_hair_volume_set_debug_value(HairGrid *grid, float debug1, float debug2, int debug3, int debug4) +{ + grid->debug1 = debug1; + grid->debug2 = debug2; + grid->debug3 = debug3; + grid->debug4 = debug4; +} + void BPH_hair_volume_grid_geometry(HairGrid *grid, float *cellsize, int res[3], float gmin[3], float gmax[3]) { if (cellsize) *cellsize = grid->cellsize; diff --git a/source/blender/physics/intern/implicit.h b/source/blender/physics/intern/implicit.h index 246b916e353..e4c90c22fb2 100644 --- a/source/blender/physics/intern/implicit.h +++ b/source/blender/physics/intern/implicit.h @@ -174,9 +174,9 @@ struct VoxelData; struct HairGrid *BPH_hair_volume_create_vertex_grid(float cellsize, const float gmin[3], const float gmax[3]); void BPH_hair_volume_free_vertex_grid(struct HairGrid *grid); -void BPH_hair_volume_set_debug_data(struct HairGrid *grid, struct SimDebugData *debug_data); void BPH_hair_volume_grid_geometry(struct HairGrid *grid, float *cellsize, int res[3], float gmin[3], float gmax[3]); -void BPH_hair_volume_set_debug_value(struct HairGrid *grid, int debug_value); +void BPH_hair_volume_set_debug_data(struct HairGrid *grid, struct SimDebugData *debug_data); +void BPH_hair_volume_set_debug_value(struct HairGrid *grid, float debug1, float debug2, int debug3, int debug4); void BPH_hair_volume_grid_clear(struct HairGrid *grid); void BPH_hair_volume_add_vertex(struct HairGrid *grid, const float x[3], const float v[3]); |