OpenGL 对象未正确缩放

OpenGL object not scaling properly

我想用模型矩阵缩放三角形。我有这个代码:

void Triangle::UpdateTransform()
{
    
    mView = glm::translate(glm::mat4(1.0f), glm::vec3(0.0f));
    mModel = glm::scale(glm::mat4(1.0f), glm::vec3(2.f));
    mModel = glm::translate(glm::mat4(1.0f), mLocation);
    mMVP = mProj*mView*mModel;
}

使用此代码我没有得到任何结果。
但是如果我更改比例和平移的顺序:

    mView = glm::translate(glm::mat4(1.0f), glm::vec3(0.0f));
    mModel = glm::translate(glm::mat4(1.0f), mLocation);
    mModel = glm::scale(glm::mat4(1.0f), glm::vec3(2.f));
    mMVP = mProj*mView*mModel;

我得到一个非常奇怪的结果:result(triangle should be at the center)
我不知道是什么原因造成的,也许这与订单有关。 非常感谢您的帮助。
我的顶点着色器:

#version 410 core

layout(location = 0) in vec4 position;

uniform mat4 u_MVP;
void main()
{
    gl_Position = u_MVP * position;
};

glm::scale and glm::translate的第一个参数是输入矩阵。这些函数定义一个矩阵并将输入矩阵乘以新指定的矩阵。 在这两种情况下,您都为输入矩阵指定 Identity matrix (glm::mat4(1.0f))。您必须将 mModel 作为输入矩阵传递。例如:

mModel = glm::translate(glm::mat4(1.0f), mLocation);
mModel = glm::scale(mModel, glm::vec3(2.f));  // <-- mModel instead of glm::mat4(1.0f)