我正在尝试为现有的电脑游戏创建屏幕覆盖。此覆盖应显示显示 3D 世界中某些位置的图标。现在因为我无法访问我希望能够获得屏幕位置的数据,所以我必须使用以下变量来计算它:
- 玩家位置 (x,y,z)
- 相机位置 (x,y,z)
- 点位置 (x,y,z)
- 相机角度(FOV)
使用这些变量,我设法获得了相机视图的左右边缘。使用这 2 个变量,我可以获得 0 到 1 之间的点,该点应在 x 轴上显示图标。(0 在左边缘,1 在右边缘)这似乎工作得很好,但前提是我与 X 或 Z 轴对齐,如下例所示:http: //i.imgur.com /OIZWBME.png
问题是,我不知道如何在相机旋转时进行这项工作。我尝试将单独工作的 2 个点与其他变量(如相机-玩家世界旋转和角度)结合起来。
有人对我如何能够完成这项工作有任何想法吗?如果我忘记提供任何信息,请告诉我!
蒂姆