OpenGL环境配置

    科技2022-07-15  115

    环境

    glfw+glad

    参考

    主要参考这篇文章:OpenGL编译环境,过程按这个来就行,这里只是自己整理一下。

    GLFW编译

    下载源码后,直接CMake,目标文件路径设置为build,然后Configure,在Generate即可,打开生成的sln,批生成,选择ALL_BUILD的Release和Debug。生成即可,结果如下:

     

    测试注意

    测试第二段代码时需要将glad.c添加进工程中。

     

    其他测试例子

    #include <glad/glad.h> #include <GLFW/glfw3.h> #include <iostream> float vertices[] = { -0.5f,-0.5f,0.0f,//left 0.5f,-0.5f,0.0f,//right 0.0f,0.5f,0.0f//top }; GLFWwindow* window; void init() { glfwInit(); glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0); glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); window = glfwCreateWindow(800, 600, "hht", NULL, NULL); if (window == NULL) { std::cout << "Failed to create GLFW window" << std::endl; glfwTerminate(); return ; } glfwMakeContextCurrent(window); if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) //初始化glad { std::cout << "faild to initialize GLAD" << std::endl; return ; } } void VAOSet() { unsigned int VBO, VAO; glGenVertexArrays(1, &VAO); glGenBuffers(1, &VBO); glBindVertexArray(VAO); glBindBuffer(GL_ARRAY_BUFFER, VBO); //往显卡写值,分配显存空间,GL_STATIC_DRAW表示,值不修改 glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices,GL_STATIC_DRAW );//放到VBO里面,大小,内容是什么 //告诉显卡,值的结构 glVertexAttribPointer(0,3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (GLvoid*)0); glEnableVertexAttribArray(0); } int main() { init(); //渲染引擎 VAOSet(); while (!glfwWindowShouldClose(window)) { glClearColor(0.2f, 0.3f, 0.3f, 1.0f); glClear(GL_COLOR_BUFFER_BIT); glDrawArrays(GL_TRIANGLES, 0, 3);//画三角 glfwPollEvents(); glfwSwapBuffers(window); } //退出 glfwTerminate(); return 0; }

    效果:

    也可参考其他文章:

    VS2017+OpenGL环境的配置(完结篇) 

    Processed: 0.010, SQL: 8