获取OpenGL中某个位置的坐标



如何在openGL中获取x、y和z的值,有没有get函数可以做到这一点?我做了很多glTranslatef命令,现在我想要窗口中某个坐标的x,y值。

我有一个项目(迷宫游戏),我想防止主角穿过迷宫的墙壁。这个想法是通过建立迷宫中所有有效位置的矩阵,将角色引导到特定的路径。

我试图赋予墙壁一个具有刚体的物理特性,openGL中有任何已知的库帮助吗?

据我所知,没有办法从OpenGL中获得这些值。但你有两种可能性:

  1. 您可以执行一些光线投射来获得位置

  2. 可以使用初始值(xyz)(我想在你的Pogram中的某个时刻,你可以访问它们,并自己跟踪位置。glTranslatef、glRotatef、glScalef基本上是矩阵乘法。如果你像GPU一样对CPU上的顶点应用相同的数学,你应该在3D中获得相同的位置。根据你的模型和你想要归档的内容,这是非常昂贵的…

对于您的问题,您可以使用3D中的任何物理引擎,也可以实现自己的lib。首先,我想说,你可以创建轴对齐的边界框(AABB)或仅创建定向边界框(OBB),并创建角色的边界框。使用方法2在CPU上跟踪边界框不是很昂贵。你只需要测试玩家的BoundingBox和每个墙的BoundiingBox的交集。这里的瓶颈将是你有多少墙。墙越多,测试需要的时间就越多,但你可以使用八叉树来加快速度,只对与你的玩家位于同一子空间的墙进行测试。

http://en.wikipedia.org/wiki/Minimum_bounding_boxhttp://www.euclideanspace.com/threed/animation/collisiondetect/

相关内容

  • 没有找到相关文章

最新更新