将模型转换为面向C ++ / OpenGL中的相机

时间:2014-11-09 23:53:05

标签: c++ opengl

我正在尝试使用c ++和openGL来绘制我正在绘制的模型。我可以让它在相机上运行,​​但让它面对相机是一个不同的故事。我不希望它总是面对相机,只是在它运行时面对它。

我有一个标准化的向量,告诉我模型当前在哪里(方向)。当我计算模型位置和摄像机位置之间的角度时,角度似乎很大程度上会导致模型在所有方向上转动,即使相机保持静止也是如此。我也试图获得它所面向的当前方向的角度和相机的方向,但这也没有用。

以下是我目前正在做的事情:

vec3 ModelPosition=model->getPosition();
vec3 CurrentModelDirection =model->getDirection();

vec3 CameraPosition=camera->getPosition();

vec3 directionToPlayer = CameraPosition-ModelPosition;
directionToPlayer =glm::normalize(directionToPlayer);

float deltaz = CurrentModelDirection .z-directionToPlayer .z;
float deltax = CurrentModelDirection .x-directionToPlayer .x;

float angle=glm::atan(deltaz,deltax) * (180.0f/3.14f);
model->setYaw(angle);

1 个答案:

答案 0 :(得分:0)

据我所见,目标偏航角应仅取决于ModelPosition(相对于相机位置),而不取决于CurrentModelDirection