0

我正在尝试在子弹的 softRigidworld 中模拟软体,但我在 libgdx 中这样做了,我已将软体添加到动态世界并将重力设置为 0,但作为布料的软体总是像重力一样下降 - 9.8 为什么会这样?有什么帮助吗?

这是图片: https ://drive.google.com/file/d/1-9Bnwz5wy_rkiIsvjD9wGzVw-7DY8SgB/view?usp=sharing

我试图在那个世界中添加一个刚体,那个物体对重力有反应,但对软体没有反应。

用它来设置世界和重力

collisionConfiguration = new btSoftBodyRigidBodyCollisionConfiguration();
        dispatcher = new btCollisionDispatcher(collisionConfiguration);
        broadphase = new btAxisSweep3(new Vector3(-1000, -1000, -1000), new Vector3(1000, 1000, 1000), 1024);
        solver = new btSequentialImpulseConstraintSolver();
        dynamicsWorld = new btSoftRigidDynamicsWorld(dispatcher, broadphase, solver, collisionConfiguration);

        worldInfo = new btSoftBodyWorldInfo();
        worldInfo.setBroadphase(broadphase);
        worldInfo.setDispatcher(dispatcher);
        worldInfo.getSparsesdf().Initialize();

        dynamicsWorld.setGravity(new Vector3(0f, 0f, 0));

使用此https://github.com/libgdx/libgdx/blob/master/tests/gdx-tests/src/com/badlogic/gdx/tests/bullet/SoftBodyTest.java 添加软体

并使用

final float delta = Math.min(1f / 30f, Gdx.graphics.getDeltaTime());
        dynamicsWorld.stepSimulation(delta, 5, 1f / 30f);
4

1 回答 1

0

找到了。还需要将重力添加到 worldinfo。

worldInfo.setGravity(new btVector3(0,9.8f,0));
于 2019-08-02T10:31:43.343 回答