三角形无法正确渲染

登缪尔

我正在尝试渲染一个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);
}
雅科夫·加尔卡(Yakov Galka)

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章