9
我想通过glm :: mat4(camera.rotationMatrix)转换glm :: vec3(camera.target)。我尝试乘以这给我一个错误:错误:'originalTarget *((相机*)这个)' - >相机:: rotationMatrix''中'operator *'不匹配。我想我不能乘以vec3 * mat4。 GLM有一些功能可以改变这一点吗?其他方式来做转换?我如何通过glm :: mat4来转换glm :: vec3
代码:
void Camera::Update(void)
{
// Aplicamos la rotacion sobre el target
glm::vec3 originalTarget = target;
glm::vec3 rotatedTarget = originalTarget * rotationMatrix;
// Aplicamos la rotacion sobre el Up
glm::vec3 originalUp = up;
glm::vec3 rotatedUp = originalUp * rotationMatrix;
// Establecemos las matrices de vista y proyeccion
view = lookAt(
position, //eye
rotatedTarget, //direction
rotatedUp //up
);
projection = perspective(
FOV,
(float) getParent()->getEngine()->GetCurrentWidth()/getParent()->getEngine()->GetCurrentWidth() ,
near_plane,
far_plane);
}
猜你的意思是“第四元素等于1.0”,不是吗?翻译transfroms将不会使用0. –
由于它是相机的向上向量,因此不需要翻译,因此在这种情况下零更合适 – Slicedpan
对不起。没有完整阅读的代码 –