碰撞检测在自己的游戏引擎



我被卡住了碰撞检测:

我读过关于处理碰撞的不同方法,并选择用AABB来实现它。问题出现在开始:我有我的测试对象-木塔,我想用AABB对象包围它,我通过顶点迭代以找到每个轴的最小和最大值,这工作正常,但需要很多时间,即使是单个对象(这是相当大的对象,我认为~8000个顶点)。

正确的做法是什么?这样的数据应该在目标文件中还是我做错了?对象可能很大(我不知道它是不是),但它只是一个对象,我担心当我设置更多的对象时会发生什么

我是用c#和OpenTK写的

编辑:

我知道我应该使用简化的碰撞模型,我试图找到我将构建AABB盒子的边界(我已经连接了屏幕,但看起来mod不喜欢它)。遍历每个向量似乎有些错误(尽管它工作,我有一个很好的盒子,适合模型的大小,但不是在有效的处理时间)

是的,您应该在创建模型资源文件时这样做。我认为你的计算方法很好。

然后,如果这个模型在你的游戏中旋转或缩放,从OBB中创建一个新的AABB(这是转换前从文件加载的AABB)。