我正在尝试使用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);
答案 0 :(得分:0)
据我所见,目标偏航角应仅取决于ModelPosition
(相对于相机位置),而不取决于CurrentModelDirection
。