创建和使用AABB碰撞检测3d (OpenGL)



假设我用下面的方法创建了一个正方形:

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?比如交叉点测试之类的?

OpenGL是一个渲染系统。除了基本的渲染原语(点/线/三角形),它没有碰撞检测的概念,甚至没有对象。OpenGL不会帮你做碰撞检测。你需要使用物理或碰撞库。

相关内容

  • 没有找到相关文章

最新更新