我使用Three.js和Physijs。我有一个墙应该作为边界,但如果力足够,物体(特别是盒子)经常穿过它。检测到碰撞,因为它们没有干净地进行,但它们开始旋转或在某个方向反弹。有没有办法增加墙可以作用在碰撞物体上的最大力?
所有四个墙的点都在同一平面上,形成一个矩形。网格由两个大的三角形面组成。我正在使用ConvexMesh。
将两个三角形分成许多较小的三角形并不能解决问题。
我可以确认法线正常,因为墙壁正确着色。
如何解决这个而不将墙转换成BoxMesh ?
我也很感激为什么会发生这种情况的解释。我猜测发动机会限制碰撞可以施加的最大力。
答案 0 :(得分:1)
我认为它是运动夹紧
https://github.com/chandlerprall/Physijs/wiki/Collisions
当物体具有高速度时,如果碰撞可能会错过 在模拟步骤之间移动并经过其他对象。修理 这样,就可以实现CCD运动夹紧。对于大小为1的立方体,请尝试:
//如果物体在一次模拟中移动超过1米,则启用CCD frame mesh.setCcdMotionThreshold(1);
//设置嵌入球体的半径,使其小于 对象mesh.setCcdSweptSphereRadius(0.2);
希望这可以尝试现在尝试