Używam BulletSharp, dystrybucji C# biblioteki punktorów. Dostaję trochę odbicia w obiekcie, który rzekomo ma Przywrócenie 0,0f.Jak mogę, aby mój obiekt fizyki się uspokoił?
Mam jeden dynamiczny cylinder (który wkrótce będzie oczkiem siatki), który spocznie na dwóch statycznych cylindrach. Tak:
cylinder na górze często odbija się dziko, zwykle odbijając w bok.
Oto kod używam ustawić scenę:
//now figure out bulletsharp stuff...
CollisionConfiguration collConfig = new DefaultCollisionConfiguration();
Dispatcher collDispatch = new CollisionDispatcher(collConfig);
BroadphaseInterface broadphase = new DbvtBroadphase();
ConstraintSolver sol = new SequentialImpulseConstraintSolver();
world = new DiscreteDynamicsWorld(collDispatch, broadphase, sol, collConfig);
world.Gravity = new Vector3(0.0f, -10.0f, 0.0f);
//log (moving object)
MotionState still = new DefaultMotionState();
CylinderShape shape = new CylinderShapeZ(0.5f, 1.0f, 1.0f);
still.WorldTransform = Matrix.Translation(0.0f, 0.4f, 0.0f);
RigidBodyConstructionInfo constructInfo = new RigidBodyConstructionInfo(1.0f, still, shape);
logBody = new RigidBody(constructInfo);
logBody.SetDamping(0.04f, 0.1f);
world.AddRigidBody(logBody);
//rollers (static objects)
CylinderShape r1s = new CylinderShapeZ(0.1f, 1.0f, 1.0f);
MotionState r1m = new DefaultMotionState();
r1m.WorldTransform = Matrix.Translation(-0.2f, -0.4f, 0.0f);
RigidBodyConstructionInfo r1ci = new RigidBodyConstructionInfo(0.0f, r1m, r1s);
r1 = new RigidBody(r1ci);
world.AddRigidBody(r1);
CylinderShape r2s = new CylinderShapeZ(0.1f, 1.0f, 1.0f);
MotionState r2m = new DefaultMotionState();
r2m.WorldTransform = Matrix.Translation(0.2f, -0.4f, 0.0f);
RigidBodyConstructionInfo r2ci = new RigidBodyConstructionInfo(0.0f, r2m, r2s);
r2 = new RigidBody(r2ci);
world.AddRigidBody(r2);
I każda ramka używam world.StepSimulation(0.05f, 100, 0.0005f);
zaktualizować symulację fizyki.
Czy brakuje mi oczywistych ustawień? Dlaczego robi to moja symulacja?
Mała aktualizacja: Z powodzeniem wykonałem podobną symulację w materiałach Blendera Bulleta. Tam nie było odbicia ... Nie wiem, jaka może być różnica między tym a tym.
Czy możesz dodać restytucję do spadającego obiektu? – MoonKnight
Dodawanie restytucji tylko do spadającego obiektu nie miało żadnych istotnych różnic. Ustawienie restytucji na 0,1 dla wszystkich trzech obiektów zdawało się nieco zmniejszać, ale w zależności od wielkości kroku symulacji. Nadal było trochę podskakiwania, od czasu do czasu odbijając się. – tugs