我有一个使用子弹物理的系统,它使用复合刚体物理,
射击对象儿童的光线投射,只需返回对象,(不是子对象)
要解决这个问题,我使用从命中点到子对象的距离,但这有点天真,因为碰撞体积可以是在3轴上缩放的球体,立方体,胶囊等。
我可以获得对象本地的x,y和z边界维度
我如何使用此信息来检测光线击中了哪个子对象?
我正在考虑对这一点进行某种检查,以及子形状的界限,但它需要非常快,并且使用python。
答案 0 :(得分:0)
两种可能解决问题的解决方案。
单独的对手
首先,将碰撞器分开并为每个碰撞器分别设置不同的对象,然后以编程方式链接对象并将它们并排移动。这样就不会有<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
<div class="wrapper container-fluid">
<div class="row">
<div class="col-xs-2 one">ONE</div>
<div class="col-xs-8 two">
<div class="three">THREE</div>
<div class="four">FOUR</div>
<div class="five">FIVE</div>
<div class="six">SIX</div>
</div>
<div class="col-xs-2 seven">SEVEN</div>
</div>
</div>
。
迭代碰撞
第二个选项的计算成本可能更高,当发生碰撞时,逐个禁用对撞机并重新制作射线,直到找到哪个对撞机最近。
答案 1 :(得分:0)
不透明所有碎片,投射光线 - &gt;找到谁被击中 - &gt;重新审视所有部分似乎是唯一的解决方案,但我不确定它会有多贵**
或在组装时构建BVH树,其中面被索引到对象.....得到击中面 - &gt;检查顶点索引得到hitObject .....?