gpt4 book ai didi

c++ - 如何将武器对准相机?

转载 作者:行者123 更新时间:2023-11-30 04:48:50 26 4
gpt4 key购买 nike

我用 OpenGL (C++) 制作了一款 FPS 游戏。我想将枪之类的武器对准相机,以便她随相机移动和旋转。

通过从 View 矩阵中移除平移部分,我已经实现了武器随相机移动,因此武器始终处于同一位置。

所以我删除了翻译部分(我使用 OpenGL Mathematics (GLM) ):

view = glm::mat4(glm::mat3(view));

问题是武器不随相机旋转。这意味着当我启动程序时,枪是正确对齐的,但如果我转身,武器不会跟着我转,所以我再也看不到她了。

谁能帮忙把武器固定在相机上?

最佳答案

您必须在 View 空间而不是世界空间中绘制“武器”。这意味着“武器”不能被 View 矩阵转换。
通过 Identity matrix 初始化“武器”的 View 矩阵:

view = glm::mat4(1.0f);

请注意,场景中的对象似乎在世界中移动(相对于 View ),因为该对象由 View 矩阵变换。 View 矩阵从世界空间转换到 View 空间。 View 矩阵是该矩阵的逆矩阵,它定义了相机的位置和方向。
如果必须在 View 空间中绘制对象,这意味着对象必须保持其相对于相机( View )的位置,则必须跳过 View 矩阵的转换。对象的位置不是世界中的位置,而是相对于相机的位置。

关于c++ - 如何将武器对准相机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55667937/

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