美文网首页
OpenGL常用组合API套路

OpenGL常用组合API套路

作者: flow__啊 | 来源:发表于2018-04-29 15:58 被阅读21次

基于OpenGL 3.3 记录了一些OpenGL常用的组合API。初学的,这篇可能还是太毛了

glfw的初始化:

glfwInit();
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); //主版本号
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); //次版本号
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); //核心模式

创建窗口:

    GLFWwindow* window = glfwCreateWindow(SCR_WIDTH, SCR_HEIGHT, "LearnOpenGL", NULL, NULL);
    if (window == NULL)
    {
        std::cout << "Failed to create GLFW window" << std::endl;
        glfwTerminate();
        return -1;
    }
    glfwMakeContextCurrent(window);

加载GLAD指针

        if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress))
    {
        std::cout << "Failed to initialize GLAD" << std::endl;
        return -1;
    }

创建VAO:

unsigned int VAO;
glGenVertexArrays(1, &VAO);
glBindVertexArray(VAO);

然后是VBO:

unsigned int VBO;
//绑定+复制VBO
glBindBuffer(GL_ARRAY_BUFFER, VBO);
glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);

接着是EBO:

unsigned int EBO;
glGenBuffers(1, &EBO);
//绑定+复制EBO
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, EBO);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indices), indices, GL_STATIC_DRAW);

记得配置下顶点给顶点着色器使用。
然后是渲染循环:

    while (!glfwWindowShouldClose(window))
    {
        // 处理事件
        processInput(window);

        // 渲染
        // 但是觉得每一次都清除下画面的颜色,会很费时间,应该有别的解决方案
        glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
        glClear(GL_COLOR_BUFFER_BIT);

        //  绑定纹理   bind textures on corresponding texture units
                .....
        //  创造动画 create transformations
                .....
        // render container
        glBindVertexArray(VAO);
        glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0);


        //交换缓冲
        glfwSwapBuffers(window);
        //检查并调用事件
        glfwPollEvents();
    }

相关文章

  • OpenGL常用组合API套路

    基于OpenGL 3.3 记录了一些OpenGL常用的组合API。初学的,这篇可能还是太毛了 glfw的初始化: ...

  • GLKit常用API

    GLKit常用API OpenGL ES(OpenGL for Embedded Systems)是以手持和嵌入式...

  • OpenGL ES GLKit 常用API解析

    OpenGL ES GLKit 常用API解析 前言 GLKit 框架的设计⽬目标是为了了简化基于OpenGL /...

  • OpenGL 渲染基础

    OpenGL 渲染架构 Client 是我们常用来编写的代码;OpenGL 提供的API等Server 是 Ope...

  • 第五弹 OpenGL下多种图元组合实现&基本渲染流程

    通过案例实现OpenGL下多种图元组合实现&基本渲染流程 在前几篇文章中我们熟悉了OpenGL 的基本图形API ...

  • OpenGL纹理常用API

    在OpenGL中使用纹理,是有一套步骤的,现将步骤记录如下: 1.读取纹理文件 //参数1:x,矩形左下⻆角的窗⼝...

  • OpenGL纹理常用API

    读取纹理 载⼊入纹理 其他纹理操作 纹理对象 设置纹理参数 关于贴图方式(GL_TEXTURE_WRAP_S、GL...

  • 音视频之基础+渲染流程

    常用图形API简介: OpenGL(Open Graphics Library)是一个跨编程语言、跨平台的编程图形...

  • 一、opengl 常用术语

    常用的图形api的分类 OpenGL(Open Graphics Library)是个跨编程语言、跨平台的编程图形...

  • OpenGL渲染技巧

    OpenGL渲染技巧 了解了OpenGL的渲染流程和常用API后,就可以简单的绘制出图形了。但是在绘制中可能会碰到...

网友评论

      本文标题:OpenGL常用组合API套路

      本文链接:https://www.haomeiwen.com/subject/proolftx.html