我已经像这样创建了一个openGL广场。
final float array1[] = new float[] {
//Front face
lx, ly, hz,
lx, hy, hz,
hx, ly, hz,
hx, hy, hz
};
我也有雷。我现在想在我绘制的每个方格周围放置边界框,以便我可以检查它们是否相交。我该怎么做呢?
感谢。
答案 0 :(得分:2)
您不需要在方块周围放置边界框。实际上,在正方形的情况下,边界框是正方形。
边界框只是一个概念:一个几何外壳,其中一些其他(实际)几何可以在概念上存在。这个想法是,检查矩形的4个角(碰撞等)要比检查复杂多边形对象的每个顶点更容易(也更快)。
关于碰撞检测的特殊问题,您应该将光线投影到每个方块定义的平面上。如果平面上的点位于所有角落之间,那么射线会撞击正方形。
答案 1 :(得分:1)
OpenGL没有边界框的概念,只是与碰撞检测相关的数学概念。
因此,基本上,只需创建一些框数据结构,并沿顶点存储边界框(理想情况下在同一坐标空间中),并在必要时进行碰撞检查。