Add a max penetration correction integration parameter
This commit is contained in:
committed by
Sébastien Crozet
parent
34b0d51455
commit
1535db87c7
@@ -44,6 +44,7 @@ impl WVelocityGroundConstraint {
|
||||
let inv_dt = SimdReal::splat(params.inv_dt());
|
||||
let allowed_lin_err = SimdReal::splat(params.allowed_linear_error);
|
||||
let erp_inv_dt = SimdReal::splat(params.erp_inv_dt());
|
||||
let max_penetration_correction = SimdReal::splat(params.max_penetration_correction);
|
||||
|
||||
let mut handles1 = gather![|ii| manifolds[ii].data.rigid_body1];
|
||||
let mut handles2 = gather![|ii| manifolds[ii].data.rigid_body2];
|
||||
@@ -150,7 +151,8 @@ impl WVelocityGroundConstraint {
|
||||
(SimdReal::splat(1.0) + is_bouncy * restitution) * projected_velocity;
|
||||
rhs_wo_bias += dist.simd_max(SimdReal::zero()) * inv_dt;
|
||||
rhs_wo_bias *= is_bouncy + is_resting;
|
||||
let rhs_bias = (dist + allowed_lin_err).simd_min(SimdReal::zero())
|
||||
let rhs_bias = (dist + allowed_lin_err)
|
||||
.simd_clamp(-max_penetration_correction, SimdReal::zero())
|
||||
* (erp_inv_dt/* * is_resting */);
|
||||
|
||||
constraint.elements[k].normal_part = VelocityGroundConstraintNormalPart {
|
||||
|
||||
Reference in New Issue
Block a user