Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我如何在bird';使用GLM的人眼视图?_C++_Opengl_Camera_Glm Math_Perspectivecamera - Fatal编程技术网

C++ 我如何在bird';使用GLM的人眼视图?

C++ 我如何在bird';使用GLM的人眼视图?,c++,opengl,camera,glm-math,perspectivecamera,C++,Opengl,Camera,Glm Math,Perspectivecamera,我正试着从鸟瞰的角度来设置我的相机。我的意思是指笔直向下。到目前为止,我已经初始化了以下内容: glm::vec3 camPosition = glm::vec3(0.0f, 10.0f, 0.0f); // camera's position glm::vec3 camFront = glm::vec3(0.0f, 0.0f, 0.0f); // where the camera is pointing glm::vec3 camUp = glm::vec3(0.0f, 0.0f, 1.0

我正试着从鸟瞰的角度来设置我的相机。我的意思是指笔直向下。到目前为止,我已经初始化了以下内容:

glm::vec3 camPosition = glm::vec3(0.0f, 10.0f, 0.0f);  // camera's position
glm::vec3 camFront = glm::vec3(0.0f, 0.0f, 0.0f);  // where the camera is pointing
glm::vec3 camUp = glm::vec3(0.0f, 0.0f, 1.0f);
我将其传递到
glm::lookat
函数中,但这根本不起作用。也许我还不太明白

我正试着从鸟瞰的角度来设置我的相机

我建议做以下几点。定义2个向量

  • 定义世界的上方向向量。这意味着在世界坐标系中,从地面指向天空的矢量:

    glm::vec3世界杯(0.0f,0.0f,1.0f);
    
  • 在世界坐标系中定义向北的方向:

    glm::vec3北半球(0.0f、1.0f、0.0f);
    
  • 利用该信息,可以设置视图坐标系的矢量

  • camPosition
    是“鸟”的位置。天空中的一个高点:

    浮动高度=10.0f;
    glm::vec3 camPosition=world_up*10.0f;
    
  • camTraget
    它是“鸟”正在看的位置。地面上的一点:

    glm::vec3 camTraget=glm::vec3(0.0f,0.0f,0.0f);
    
  • camUp
    垂直于从
    camPosition
    camTraget
    的向量。因为“鸟”看地面,所以它是鸟的飞行方向(例如向北):

    glm::vec3-camUp=world\u-north;
    
  • 使用此矢量,可以通过以下方式设置视图矩阵:

    glm::mat4 view=glm::lookAt(camPosition、camTraget、camUp);
    
    你知道OpenGL是如何工作的吗?你知道
    glm::lookat
    的返回类型是矩阵4x4,你需要用这个矩阵做什么吗?是的(至少我想我知道…)。我把这个矩阵和我的物体的位置矩阵相乘。我不是专家,但也许你需要把你从
    lookat
    hmm.得到的矩阵倒过来。。似乎不起作用什么是不起作用?这段代码应该为您提供一个正确的视图矩阵。