0

我正在开发 OpenGL 2.0 中的一个项目。我从一个文件加载对象,该文件包含有关对象名称、位置、比例和旋转的信息。

我在代码中获得了所有这些信息,现在我想计算所有加载对象的边界,以便开始处理碰撞。

项目是比例值就像 0.1 即它乘以一个维度向量来获得实际的边界维度。

例如对象 1:缩放 x:-0.1,y:0.05,z:0.1 对象 2:缩放 x:0.1,y:0.1,z:0.1

对象 1:位置 x:5,y:21.7269,z:0 对象 2:位置 x -58.0646 y:-6.68359,z:0

对象 1: rot x: 0, y: 0, z: 0 对象 2: rot x:0, y:90, z:0

我的问题是,我想计算每个对象的尺寸,即边界,如何实现这个目标?

4

1 回答 1

1

取决于您所说的“边界”是什么意思。如果您的意思是 AABB(轴对齐边界框),对于每个单独的对象,这只是一个问题

  1. 找到你所有的顶点
  2. 将分量乘以比例
  3. 使用旋转进行变换(使用旋转矩阵或标准三角法)
  4. 找到轴上的极值
  5. 通过位置向量平移

其中许多可以以不同的顺序完成。

你最好从一些好的理论开始。 实时碰撞检测非常不言自明,一直是我最喜欢的关于该主题的书籍之一,也是任何有兴趣的人入门的好地方。

从低维物理开始也是一个好主意,直​​到概念更加根深蒂固(即不要使用 z 维)。

于 2013-05-30T08:41:27.247 回答