我正在尝试渲染一个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)
电话。结果,您在前一个三角形上绘制了旋转的三角形。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句