CMake搭建OpenGL开发环境

如题所述

第1个回答  2024-04-05
要为Ubuntu 20.04系统搭建OpenGL开发环境,首先确保安装必要的依赖。通过`apt-get`安装`libglfw3-dev`,这将为GLFW库提供基础支持。针对X11或Wayland系统,记得安装相应的图形库。接下来,从GitHub克隆GLFW的源码,以便进行本地构建:

```bash

git clone https://github.com/glfw/glfw.git

```

使用CMake构建GLFW,配置CMakeLists.txt文件,将GLFW的源代码目录指定为构建目标:

```cmake

cmake -S path/to/glfw -B build

cmake --build build

```

安装GLAD库时,访问官网下载包含头文件的include文件夹,将其移动到`/usr/local/include`,并将`glad.c`文件放置在你的项目目录中。在CMakeLists.txt中添加GLAD的链接,以确保其在编译时可用:

```cmake

find_package(GLFW REQUIRED)

find_package(GLAD REQUIRED)

include_directories(${GLAD_INCLUDE_DIRS})

add_executable(main main.cpp)

target_link_libraries(main glfw glad)

```

在`main.cpp`中,编写核心代码来初始化窗口、加载GLAD函数指针、创建和编译shader程序、设置顶点数组对象(VAO)和缓冲区(VBO),并进行基本的OpenGL渲染:

```cpp

// GLFW初始化

if (!glfwInit()) {

std::cerr << "Failed to initialize GLFW" << std::endl;

return -1;

}

// GLAD加载

if (!gladLoadGLLoader(glfwGetProcAddress)) {

std::cerr << "Failed to initialize GLAD" << std::endl;

glfwTerminate();

return -1;

}

// 创建顶点着色器和顶点数组对象

std::vector vertices = {...};

unsigned int VBO, VAO;

glGenVertexArrays(1, &VAO);

glGenBuffers(1, &VBO);

glBindVertexArray(VAO);

// 着色器程序和顶点数据

std::string vertexShaderSource = /*...*/;

std::string fragmentShaderSource = /*...*/;

// (编译、链接、设置顶点数据)

// 渲染循环

while (!glfwWindowShouldClose(window)) {

// 清空颜色缓冲,绘制三角形,交换双缓冲

// 处理用户输入和窗口回调

}

// 释放资源

glfwTerminate();

```

在这个过程中,我们引入了glm库,用于进行三维数学计算,如旋转180度。在CMakeLists.txt中添加对glm的依赖和链接:

```cmake

find_package(glm REQUIRED)

target_link_libraries(main ${GLM_INCLUDE_DIRS})

```

通过这些步骤,你将在Ubuntu 20.04上成功搭建一个基于GLFW和GLAD的OpenGL开发环境,实现窗口创建、基本渲染功能以及使用glm库进行数学运算。
相似回答