gpt4 book ai didi

c++ - OpenGL/C++ 以任何方式在相机所面对的方向上移动对象?

转载 作者:行者123 更新时间:2023-11-28 07:11:28 30 4
gpt4 key购买 nike

我正在尝试为大学项目制作台球/台球 3D 游戏。我不是一个优秀的程序员,所以我很挣扎。

目前我有一个基本的 table ,所有的球都已就位。摄像机位于白球后面(有点像俯视 table 的第一人称视角),可以使用键盘围绕白球旋转(始终注视着它)。它有点像瞄准系统,但我遇到的问题是我需要球沿相机所面对的方向(用户瞄准球的方向)移动。我只知道如何在 x、y 或 z 方向平移球,但不知道如何指定相机面对的方向。

最佳答案

我建议您复习一下坐标空间。

如果您想在“相机方向”上移动某些东西,您通常会在相机/眼睛/ View 空间中移动 Z 单位(这些都是同一事物的同义词)。由于这是 OpenGL, View 空间的设置使得 -z 方向的移动将向前移动,而 +z 将向后移动。您应该拥有必要的矩阵来变换 View 空间内外,您只需要知道坐标空间变换的工作原理即可完成这个难题。

话虽如此,您应该能够查看类似 this 的内容并更好地了解正在发生的事情。还有很多其他解释,但我真的喜欢它包含的投影到图像平面上的场景的彩色图表;)

我要指出的是,该答案中对转换的描述在概念上是倒退的。您从对象空间中的点开始,然后在投影后逐渐进入窗口空间。

关于c++ - OpenGL/C++ 以任何方式在相机所面对的方向上移动对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20906786/

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