【发布时间】:2019-10-21 16:13:57
【问题描述】:
我已经为我的场景实现了一个小型 2d 相机。问题是,如果我尝试缩放相机,一些如何向左和向下移动而不是放大(每个对象向上和向右移动)。我不确定我做错了什么。
Camera.cpp:
void Camera2D::zoom(float zoomFactor)
{
scale = glm::scale(scale, glm::vec3(zoomFactor, zoomFactor, 0));
updateMatrix();
}
void Camera2D::updateMatrix()
{
translate = glm::translate(glm::mat4(1.f) , glm::vec3(-400, -300, 0));//zoom from center of
screen
view = translate * scale;
translate = glm::translate(glm::mat4(1.f), glm::vec3(0, 0, 0));
view = translate * scale;
}
我将 mvp 矩阵发送到着色器,如下所示:投影 * 视图 * 模型。 缩放系数仅为 1.001。
【问题讨论】:
-
您是否使用左下角为 (0, 0) 右上角为 (800, 600) 的正交投影?视图矩阵是单位矩阵+比例吗?
标签: c++ opengl camera 2d glm-math