我试图在鸟瞰视角设置我的相机。我的意思是指向下方。这是我到目前为止已初始化的内容:
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 world_up( 0.0f, 0.0f, 1.0f );
glm::vec3 world_north( 0.0f, 1.0f, 0.0f );
利用该信息,可以设置视图坐标系的矢量。
camPosition
它是“鸟”看的位置。地面上的一点:
float height = 10.0f;
glm::vec3 camPosition = world_up * 10.0f;
camTraget
垂直于从glm::vec3 camTraget = glm::vec3(0.0f, 0.0f, 0.0f);
到camUp
的向量。由于“鸟”看着地面,它是鸟的飞行方向(例如向北):
camPosition
使用此vectrs,可以通过camTraget
设置视图矩阵:
glm::vec3 camUp = world_north;