0

假设我有一个按以下方式创建的正方形:

glBegin(GL_QUADS);
glColor3f(0.0f,1.0f,0.0f);  
glVertex3f( 1.0f, 1.0f,-1.0f);  
glVertex3f(-1.0f, 1.0f,-1.0f);  
glVertex3f(-1.0f, 1.0f, 1.0f);  
glVertex3f( 1.0f, 1.0f, 1.0f);  

glColor3f(1.0f,0.5f,0.0f);  
glVertex3f( 1.0f,-1.0f, 1.0f);  
glVertex3f(-1.0f,-1.0f, 1.0f);  
glVertex3f(-1.0f,-1.0f,-1.0f);  
glVertex3f( 1.0f,-1.0f,-1.0f);  

glColor3f(1.0f,1.0f,0.0f);  
glVertex3f( 1.0f,-1.0f,-1.0f);  
glVertex3f(-1.0f,-1.0f,-1.0f);  
glVertex3f(-1.0f, 1.0f,-1.0f);  
glVertex3f( 1.0f, 1.0f,-1.0f);  

glColor3f(0.0f,0.0f,1.0f);  
glVertex3f(-1.0f, 1.0f, 1.0f);  
glVertex3f(-1.0f, 1.0f,-1.0f);  
glVertex3f(-1.0f,-1.0f,-1.0f);  
glVertex3f(-1.0f,-1.0f, 1.0f);  

glColor3f(1.0f,0.0f,1.0f);  
glVertex3f( 1.0f, 1.0f,-1.0f);  
glVertex3f( 1.0f, 1.0f, 1.0f);  
glVertex3f( 1.0f,-1.0f, 1.0f);  
glVertex3f( 1.0f,-1.0f,-1.0f);  
glEnd();    

现在假设我想使用 AABB 结构来检测球体何时与该立方体的侧面(不是立方体的顶部或底部)碰撞,从而防止它穿过立方体?关于如何去做这件事的任何想法?

如果我使用 glutSolidCube 实现了多维数据集,我还能使用 AABB 结构吗?

还有没有更容易检测碰撞而不必使用AABB?也许像测试交叉路口或类似的东西?

4

1 回答 1

2

OpenGL是一个渲染系统。它没有碰撞检测的概念,甚至没有基本渲染图元(点/线/三角形)之外的对象。OpenGL 不会帮助您进行碰撞检测。您需要为此使用物理或碰撞库。

于 2013-04-01T09:39:17.703 回答