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
對不起。沒有完整閱讀的代碼 –