这个问题可能有很多原因,以下是一些可能导致三角形未绘制的原因以及相应的解决方案:
1.没有启用深度测试(Depth Test)
深度测试可以确保远处的物体在近处物体的前面,以防止绘制错误。
您可以在渲染之前启用深度测试,例如:
glEnable(GL_DEPTH_TEST);
如果没有启用或配置清除颜色,则无法看到任何绘制结果。您可以使用glClearColor()来设置颜色并使用glClear()清除屏幕缓冲区,例如:
glClearColor(0.0f, 0.0f, 0.0f, 1.0f); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
请确保您的顶点位置数据和顶点属性设置正确,并将其绑定到相应的Shader程序中。您可以检查属性的位置是否正确,并使用glVertexAttribPointer()来设置属性数据,例如:
glBindVertexArray(vao); glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, 0); glEnableVertexAttribArray(0);
如果上述解决方案都无效,您可以尝试调整您的代码和着色器,以发现问题所在。