gpt4 book ai didi

c++ - 寻找鼠标下的物体

转载 作者:搜寻专家 更新时间:2023-10-31 01:21:40 24 4
gpt4 key购买 nike

我正在开发一款游戏,它的整个地形基本上都是由 AABB 盒子构成的。我知道每个盒子的顶点、最小值和最大值。我也这样设置我的相机:

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

glRotatef(Camera.rotx,1,0,0);
glRotatef(Camera.roty,0,1,0);
glRotatef(Camera.rotz,0,0,1);

glTranslatef(-Camera.x,-Camera.y,-Camera.z);

我要做的基本上是找到鼠标所在的立方体。我考虑过给鼠标位置一个前向 vector ,然后简单地迭代直到“鼠标子弹”击中某物。然而,这涉及多次遍历所有对象。有没有一种方法可以通过仅遍历所有对象一次来实现?

谢谢

最佳答案

这通常称为“挑选”This here看起来像一个很好的基于 gl 的链接

如果那是 tldr,那么你可以使用一个基本算法

  1. 按 z 排序对象(或让它们按 z 排序,或深度缓冲技巧等)
  2. 迭代并进行边界测试,在碰到第一个时停止。

关于c++ - 寻找鼠标下的物体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3639645/

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