Fixes on the super janky collision
This commit is contained in:
parent
b817940716
commit
e746462295
5 changed files with 871 additions and 870 deletions
|
|
@ -120,8 +120,9 @@ public class LegacyPhysicsController implements IPhysicsController {
|
|||
NextPosition.add(localVelocityStep);
|
||||
|
||||
boolean ValidMovement = true;
|
||||
Drag = CalculateDrag(TerminalVelocitiesMS, DragCoefficients,CrossSectionAreas, actor.GetScale());
|
||||
FallingAcceleration = CalculateFallSpeed(MassKG, Drag, actor.GetScale());
|
||||
Vector3f scale = new Vector3f(1,1,1);
|
||||
Drag = CalculateDrag(TerminalVelocitiesMS, DragCoefficients,CrossSectionAreas, scale);
|
||||
FallingAcceleration = CalculateFallSpeed(MassKG, Drag, scale);
|
||||
|
||||
Velocities.y -= (FallingAcceleration / (TargetFrameRate * 2f)) * DeltaTime;
|
||||
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ public class RigidBody {
|
|||
public Vector3f CrossSectionAreas = new Vector3f(1.8f * 0.9f, 0.6f * 0.9f, 1.8f * 0.6f);
|
||||
public Vector3f WeightDistribution = new Vector3f(2.0f,5.0f,7.0f);
|
||||
public float FallingAcceleration = 0.0f;
|
||||
public float Bounciness = 0.3f;
|
||||
public float Bounciness = 2f;
|
||||
|
||||
public final Vector3f LinearVelocity = new Vector3f();
|
||||
public final Vector3f AngularVelocity = new Vector3f();
|
||||
|
|
|
|||
|
|
@ -43,9 +43,9 @@ public class RigidCollision {
|
|||
float j = -(1 + Restitution) * VelocityAlongNormal / InverseMassSum;
|
||||
Impulse.set(normal).mul(j);
|
||||
|
||||
body1.ApplyImpulse(NegatedImpulse.set(Impulse).negate(), Point);
|
||||
body1.ApplyImpulse(NegatedImpulse.set(Impulse).negate().mul(body1.Bounciness), Point);
|
||||
|
||||
body2.ApplyImpulse(Impulse,Point);
|
||||
body2.ApplyImpulse(Impulse.mul(body2.Bounciness),Point);
|
||||
|
||||
ApplyFriction(body1, body2, normal, Point, Dist1, Dist2, j);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,13 +31,13 @@ public class T4Math {
|
|||
|
||||
public static class Physics{
|
||||
public static Vector3f CalculateDragCoefficients(Vector3f TerminalVelocitiesMS, float MassKG, Vector3f CrossSectionAreas, Vector3f Scale){
|
||||
return (CalculateDragFromTerminalVelocities(TerminalVelocitiesMS,MassKG *Math.abs((Scale.x + Scale.y + Scale.z)/3),new Vector3f(CrossSectionAreas)));
|
||||
return (CalculateDragFromTerminalVelocities(TerminalVelocitiesMS,MassKG * 2,new Vector3f(CrossSectionAreas)));
|
||||
}
|
||||
public static Vector3f CalculateDrag(Vector3f Velocities, Vector3f DragCoefficients, Vector3f CrossSectionAreas, Vector3f Scale){
|
||||
return (CalculateRealDrag(Velocities,DragCoefficients,new Vector3f(CrossSectionAreas)));
|
||||
}
|
||||
public static float CalculateFallSpeed(float MassKG, Vector3f Drag, Vector3f Scale){
|
||||
return CalculateGravityForce(MassKG *Math.abs((Scale.x + Scale.y + Scale.z)/3), Drag);
|
||||
return CalculateGravityForce(MassKG * 2, Drag);
|
||||
}
|
||||
|
||||
public static Vector3f CalculateRealDrag(Vector3f Velocity, Vector3f DragCoefficients, Vector3f CrossSectionAreas){
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue