OpenGL不绘制三角形VBO

Posted

技术标签:

【中文标题】OpenGL不绘制三角形VBO【英文标题】:OpenGL not drawing triangles VBO 【发布时间】:2016-02-14 22:03:27 【问题描述】:

我正在阅读此视频https://www.youtube.com/watch?v=6u1FkksyNCk 中的教程。将这个人的代码复制到我的 Visual Studio Community 2015 后,我没有在屏幕上看到三角形。只有空的黑色窗口。我有版本问题吗?我像他在第二个视频中所做的那样配置了视觉效果https://www.youtube.com/watch?v=vGptI11wRxE

代码如下:

#include <windows.h>
#include <GL/GL.h>
#include <GLFW/glfw3.h>

int main(void)

    GLFWwindow *window;

    //initialisie the GLFW
    if(!glfwInit())
    
        return -1;
    

    //create a window mode OpenGL Context
    window = glfwCreateWindow(640, 480, "OpenGL Project Tutorial", NULL, NULL);

    if (!window)
    
        glfwTerminate();
        return -1;
    

    // make window 's context current

    float vertices[] =
    
        0.0, 0.5, 0.0, // top
        -0.5, -0.5, 0.0, // bottom
        0.5, -0.5, 0.0 // bottom right
    ;

    //loop unitl the user closes the window
    while (!glfwWindowShouldClose(window))
    
        glClear(GL_COLOR_BUFFER_BIT);

        // Render OpenGL here
        glEnableClientState(GL_VERTEX_ARRAY);
        glVertexPointer(3, GL_FLOAT, 0, vertices);
        glDrawArrays(GL_TRIANGLES, 0, 3 );
        glDisableClientState( GL_VERTEX_ARRAY);
        //render the OpenGL here

        //sweap front and back buffers
        glfwSwapBuffers(window);

        //poll for and process events
        glfwPollEvents();
    

    glfwTerminate();

【问题讨论】:

你真的不应该期望人们在这里观看视频教程只是为了找到你可能正在使用的源代码。 【参考方案1】:

您的代码缺少一个

glfwMakeContextCurrent(window);

紧接着

// make window 's context current

评论。

【讨论】:

@Thomas:不,不是。帮自己一个忙,放弃将视频教程用于诸如 opengl 之类的东西的想法。

以上是关于OpenGL不绘制三角形VBO的主要内容,如果未能解决你的问题,请参考以下文章

为啥绘制我的 OpenGL-ES VBO 网格会阻止其他三角形显示?

使用 VBO/IBO 的 OpenGL 纹理三角形

OpenGL:一个 VBO 的多个 VAO

未能在 OpenGL/Android 中使用 VBO

OpenGL VBO 不显示

OpenGL 基本 IBO/VBO 不工作