Wpf 网格子弹碰撞检测

Wpf 网格子弹碰撞检测,wpf,collision-detection,mesh,bullet,bulletphysics,Wpf,Collision Detection,Mesh,Bullet,Bulletphysics,我正在使用集成到WPF应用程序中。我的场景包括碰撞形状为BvhTriangleMeshShape()的碰撞对象的两个实例和一个球体 DefaultCollisionConfiguration collisionConf = new DefaultCollisionConfiguration(); CollisionDispatcher dispatcher = new CollisionDispatcher(collisionConf); CollisionWo

我正在使用集成到WPF应用程序中。我的场景包括碰撞形状为BvhTriangleMeshShape()的碰撞对象的两个实例和一个球体

 DefaultCollisionConfiguration collisionConf = new DefaultCollisionConfiguration();
        CollisionDispatcher dispatcher = new CollisionDispatcher(collisionConf);
        CollisionWorld world;
        world = new CollisionWorld(dispatcher, broadphase, collisionConf);

        CollisionFilterGroups myGroup = (CollisionFilterGroups) 1;
        CollisionFilterGroups collideMask = (CollisionFilterGroups) 4; 

        foreach(var ob in obstacles)
            world.AddCollisionObject(ob.BulletObj.ColObj);

        CollisionObject sphere_A = new CollisionObject();
        double radius_A = 700;
        Point3D ptA = new Point3D(3000, -200, 2800);
        BulletSharp.Matrix tr_A = new BulletSharp.Matrix();
        tr_A.set_Rows(0, new Vector4(1, 0, 0, 0));
        tr_A.set_Rows(1, new Vector4(0, 1, 0, 0));
        tr_A.set_Rows(2, new Vector4(0, 0, 1, 0));
        tr_A.set_Rows(3, new Vector4((float)ptA.X, (float)ptA.Y, (float)ptA.Z, 1));
        sphere_A.WorldTransform = tr_A;

        SphereShape sphere_shape_A = new SphereShape((float)radius_A);

        //Set the shape of the sphere
        sphere_A.CollisionShape = sphere_shape_A;
        world.AddCollisionObject(sphere_A);


        world.PerformDiscreteCollisionDetection();
球体网格碰撞在两种模型上都能正常工作。但是,当我尝试检查网格碰撞检测时,它不起作用。我认为这可能更像是一个子弹问题,而不是一个尖锐的问题

问题:球体对象是否默认为其他遮罩组?是否有不同的配置来启用网格碰撞检测?
问题在于BvhTriangleMeshShape仅支持静态对象。三角形网格没有正确的碰撞处理。Bullet建议用户对动态对象使用凸分解,并使用由btConvexHullShapes组成的BtcomoundShape。

谢谢@Eivithari。“静态”是指变换未被修改的对象还是未被物理引擎移动的对象?静态是指变换不能改变。BvhTriangleMeshShape不适用于任何变换,因为三角形存储在优化结构中。如果我没记错的话,就像AABB树一样。转换它将需要不断的重新计算,这将是完全没有意义的。此外,对于两个BVHTrianglemesh形状,也没有碰撞检测算法。