【问题标题】:Calculate which child object was hit by ray or collision?计算哪个子对象被射线或碰撞击中?
【发布时间】:2016-06-05 17:57:23
【问题描述】:

我有一个使用复合刚体物理的子弹物理系统,

投射到子对象的光线投射,只返回对象,(不是子对象)

为了解决这个问题,我使用了从生命点到子对象的距离,但这有点幼稚,因为碰撞体积可以是球体、立方体、胶囊等,在 3 轴上缩放。

我可以获得对象本地的 x、y 和 z 绑定维度,

我将如何使用这些信息来检测哪个子对象被射线击中?

我正在考虑对点和子形状的边界进行某种检查,但它需要非常快,并且它使用 python。

【问题讨论】:

    标签: python game-physics blender bulletphysics


    【解决方案1】:

    两种可能的解决方案。

    单独的对撞机

    首先,分离碰撞器并为每个碰撞器分配不同的对象,然后以编程方式链接对象并将它们并排移动。这样就不会有compound collider


    迭代碰撞

    第二个选项可能在计算上更昂贵,当发生碰撞时,逐个禁用对撞机并重新投射光线,直到找到最近的对撞机。

    【讨论】:

    • @BluePrintRandom 我不知道,我实际上投了你的票。
    【解决方案2】:

    取消所有部件的父级,投射射线 -> 查找谁被击中 -> 重新设置所有部件似乎是唯一的解决方案,但我不确定它会有多昂贵**

    或者在组装时构建一个 BVH 树,其中面被索引到对象.....获取命中面->检查顶点索引以获取命中对象.....?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-21
      • 2023-03-08
      • 2014-02-28
      • 2022-08-20
      • 2012-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多