Я использую BulletSharp, распределение C# библиотеки пули. Я получаю некоторое подпрыгивание в объекте, который якобы имеет реституцию 0.0f.Как я могу настроить свой физический объект?
У меня есть один динамический цилиндр (что скоро будет сеткой), падая на два статических цилиндра. Как так:
цилиндр сверху часто отскакивает вокруг дико, как правило, отскакивая в сторону.
Вот код, я использую, чтобы создать сцену:
//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);
И каждый кадр я использую world.StepSimulation(0.05f, 100, 0.0005f);
обновить моделирование физики.
У меня отсутствуют какие-либо очевидные настройки? Почему моя симуляция делает это?
Небольшое обновление: я успешно сделал аналогичную симуляцию в материалах Blender Blender. Там не было подпрыгивания ... Я не знаю, какая разница между этим и этим.
Можете ли вы добавить реституцию к падающему объекту? – MoonKnight
Добавление реституции только к падающему объекту не оказало заметной разницы. Установка реституции на 0,1 для всех трех объектов, похоже, немного уменьшилась, но в зависимости от размера шага моделирования. Все еще было немного подпрыгивать, иногда отскакивая. – tugs