三角形未正确呈现

Triangle isn't rendering correctly

我正在尝试渲染随时间旋转的 2D 三角形,但渲染不正确。它以一个普通的三角形开始,但后来变成了我根本无法解释的东西。有人可以解释这里发生了什么吗?

视频的意思:https://imgur.com/a/aWilS6Q

... ...

以下是我构建场景的方式:

void Camera::UpdateCamera(struct Level* lvl) {

    Shader::SetShaderProgram(lvl->shader.GetShaderID());
    glBindVertexArray(lvl->model.getVAO());

    //model scene
    glm::mat4 model = glm::mat4(1.0f);
    model = glm::rotate(model, (float)glfwGetTime() * glm::radians(50.0f), glm::vec3(0.5f, 1.0f, 0.0f));

    //view scene
    glm::mat4 view = glm::mat4(1.0f);
    view = glm::lookAt(lvl->cam.m_cameraPos, lvl->cam.m_cameraPos + lvl->cam.cameraFront, lvl->cam.cameraUp);

    //projection scene
    glm::mat4 projection = glm::mat4(1.0f);
    if (lvl->cam.changeProjection)
    {
        projection = glm::perspective(glm::radians(90.0f), (float)800 / (float)600, 0.1f, 100.0f);
        lvl->cam.changeProjection = false;
    }

    //Set scene uniforms for vertex shader
    Shader::setMat4(lvl->shader.GetShaderID(), "model", model);
    Shader::setMat4(lvl->shader.GetShaderID(), "view", view);
    Shader::setMat4(lvl->shader.GetShaderID(), "projection", projection);

}

这是我的绘图命令:

glUseProgram(m_shaderID);
glBindVertexArray(VAO);
glDrawArrays(GL_TRIANGLES, 0, 3);

这是我的顶点着色器代码:

#version 450 core
layout (location = 0) in vec3 aPos;

uniform mat4 model;
uniform mat4 view;
uniform mat4 projection;

void main()
{
    gl_Position = model * view * projection *vec4(aPos, 1.0f);
}

您错过了一个 glClear(GL_COLOR_BUFFER_BIT) 电话。结果,您在前一个三角形上绘制了旋转的三角形。