边界框碰撞-3D XNA

边界框碰撞-3D XNA,3d,xna,collision,3d,Xna,Collision,基本上,我想在XNA中的3D模型周围放置一个边界框/立方体。在本例中,它是一幅简单的绘画,因此模型本身只是一个纹理矩形 我尝试了以下代码来创建多维数据集: public BoundingBox BoundingBoxCreation() { min = Position + Vector3.Up * Height - Size / 2 max = Position + Vector3.Up * Height - Size / 2;

基本上,我想在XNA中的3D模型周围放置一个边界框/立方体。在本例中,它是一幅简单的绘画,因此模型本身只是一个纹理矩形

我尝试了以下代码来创建多维数据集:

    public BoundingBox BoundingBoxCreation()
    {
        min = Position + Vector3.Up * Height - Size / 2
        max = Position + Vector3.Up * Height - Size / 2;

        boundingBox = new BoundingBox(min, max);
        return boundingBox; 
    }
然后我创建了两个相同的模型,具有相同的高度、大小和比例: 规模:新的矢量3500.0f大规模,因为我在Blender中创建了它们 高度:2楼 尺寸:新矢量36.75f*500,-1.09f*500,0.35f*500乘以刻度。然后我试着检查两个物体之间的碰撞,就像这样:

if (CollisionTest.boundingBox.Intersects(tapestryLeftOne.boundingBox))
   {
      Window.Title = "Collision";
   } 
然而,窗口标题只会在两个窗口完全100%对齐时更改为显示碰撞,但我要做的是,即使它们在任何点接触,而不仅仅是在匹配时。 有什么办法可以做到这一点吗


如果有更好的方法来构造边界框/立方体并检测另一个边界立方体、球体等之间的碰撞,那么如果您能告诉我,我将不胜感激。

根据您的代码,最小值和最大值将是相同的。这可以解释为什么它们只有在完全对齐时才会相交。你以后会修改边界吗

您所做的看起来是正确的,但是您也可以尝试包含并检查4个角矢量3,如果框的大小相同

有关模型边界框的详细信息

您好,谢谢您就这个问题回复我。明天我将尝试第一件事,让您知道这是否解决了我的问题。我成功地使边界框与我的最小值和最大值一起工作。只是必须将+更改为最小值上的-因为我正在创建一个大小为零的框,解释为什么它必须完全对齐才能检测碰撞。然而,我现在有另一个问题。出于某种原因,当我画一个盒子时,它看起来远离模型本身。你知道怎么解决这个问题吗?如有必要,可以提供屏幕截图