gpt4 book ai didi

c++ - 创建和使用 AABB 进行碰撞检测 3d (OpenGL)

转载 作者:行者123 更新时间:2023-11-28 03:19:55 25 4
gpt4 key购买 nike

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

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 不会帮你做碰撞检测。为此,您需要使用物理库或碰撞库。

关于c++ - 创建和使用 AABB 进行碰撞检测 3d (OpenGL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15740761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com