我刚刚学到了一点 GLUT,已经设置了一个可移动的相机,照明并制作了一个class
包含一些 3D 形式的东西。
但现在我希望相机不能穿过这些物体。是否有任何类型OpenGL
或glut
命令可以检查特定点或实际相机位置是否有障碍物?
OpenGL 是一个光栅化 API,它不会为您检查或处理冲突。检测碰撞的常用方法是包围盒或包围球。您可以将相机位置视为一个点,并检查它是否在障碍物的包围体内。要获得边界球体的半径,您必须遍历模型中的每个顶点并存储到其中心的距离。您只需要循环一次,而不是每一帧。
OpenGL 不是场景图,这意味着它没有任何类型的场景或世界的内部表示。OpenGL 是一个绘图 API,它只是在帧缓冲区上绘制点、线和三角形,一次一个,然后忘记它们。
因此 OpenGL 不会为您进行碰撞检测。可以使用 OpenGL 实现碰撞检测系统,但这是您的程序所做的,而不是 OpenGL 。