gpt4 book ai didi

c++ - 在 C++ 中将 2D 屏幕坐标转换为 3D 空间坐标?

转载 作者:太空宇宙 更新时间:2023-11-04 14:18:57 31 4
gpt4 key购买 nike

我正在使用 OpenGLES 的包装器编写 2D 游戏。有一个相机瞄准一堆纹理,这些纹理是游戏的 Sprite 。用户应该能够通过在屏幕上四处移动手指来移动 View 。问题是,相机距离纹理大约 100 个单位,因此当手指在屏幕上滑动以平移相机时,由于视差效应, Sprite 移动的速度比手指快。

所以基本上,我需要将 2D 屏幕坐标转换为特定 z 距离处的 3D 坐标(在我的例子中是 100 远,因为那是纹理的距离)。

有一些"Unproject" C# 中的函数,但我使用的是 C++,因此我需要此函数背后的数学知识。我对 3D 东西非常陌生,而且我的数学很差,所以如果你能像向一个 10 岁的 child 解释那样解释,我将不胜感激。

如果我能做到这一点,我就能以这样的速度平移相机,让远处的 Sprite 看起来就像是用用户的手指平移。

最佳答案

为了挑选目的,有比反向投影更好的方法。看到这个答案:https://stackoverflow.com/a/1114023/252687

关于c++ - 在 C++ 中将 2D 屏幕坐标转换为 3D 空间坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9124731/

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