目前网络上最好的OpenGL教程无疑是JOEY DE VRIES 的LearnOpenGLCN,网址如下:https://learnopengl-cn.github.io/,VRIES使用的是glfw+glad,IDE(集成开发工具)为Visual Studio。Linux上并没有Visual Studio,对于Linux下的开发者来说,可以用jetbrains公司的clion来代替Visual Studio,搭建开发环境。
首先安装qt5的依赖,在终端中执行以下命令:
sudo apt install qttools5-dev-tools
接着到jetbrains的官网下载jetbrain toolbox,这个toolbox可以一键安装Intellij idea,phpstorm,pycharm,clion等大名鼎鼎的IDE,当然这些都是jetbrains这一家公司开发出来的,网址如下:https://www.jetbrains.com/toolbox/app/?fromMenu。
将下载好的tar.gz后缀的压缩包解压,先cd进去,然后执行sudo ./jetbrains-toolbox便可启动toolbox了,点击clion安装即可。如果没安装qt5的依赖,这时jetbrainstoolbox启动的时候终端里就会出现:QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root',并且点击install某个软件会安装不上。
如果弹出这个:
给文件夹加个权限即可,命令如下:
sudo chmod -R 777 /home/[username]/.local/share/JetBrains
下载地址如下:https://www.glfw.org
解压,cd进解压后的文件夹中,mkdir一个名字叫build的目录,这个目录是cmake编译的目录,安装glfw是需要cmake的,在命令行输入cmake --version检查自己的cmake版本,如果电脑上并没有cmake,可以输入命令sudo apt install cmake安装。然后安装依赖,输入以下命令:
sudo apt-get build-dep glfw
sudo apt-get install cmake xorg-dev libglu1-mesa-dev
cd进刚刚新建的build目录,输入命令cmake ../,如没有提示报错ERROR,则下一步输入make,make成功后继续输入sudo make install,如出现下图所示则代表安装成功。
下载地址如下:https://glad.dav1d.de,选择需要的版本和模式:
随后点击页面右下角的GENERATE,接着跳入新的页面点击glad.zip进行下载。
解压 glad的压缩包,cd进目录,将include目录下的两个文件夹glad和KHR复制到/usr/local/include中,命令如下:
cd include
sudo mv * /usr/local/include
下载地址如下:https://github.com/g-truc/glm,直接clone就好,然后解压,如下图所示。
复制其中的glm文件夹到/usr/local/include下即可,命令如下:
cd glm
sudo cp -r glm/ /usr/local/include
下载地址:https://github.com/assimp/assimp,直接clone就好,然后解压,如下图所示:
cd进解压的目录下,然后新建一个build的目录,命令mkdir build,接着cd进build里,输入cmake ../ 回车,如果没报错继续输入make回车,具体操作看下图:
make过程中没出错的话继续输入sudo make install,如出现下图则表示安装成功:
如果中间报了需要gtest之类的错误,那就安装gtest,步骤如下:
1.安装依赖:sudo apt-get install libgtest-dev;
2.下载gtest,下载地址:https://github.com/google/googletest,clone并下载下来,会得到一个名字叫做googletest-master.zip的文件;
3.解压它,cd进解压的目录下,新建一个build的文件夹,mkdir build,接着cd进build里,输入cmake ../ 回车,完成后依次执行make,以及sudo make install。在安装完gtest后返回解压的Assimp文件夹中的buiild,继续执行make,sudo make install;
4.将生成的libgtest.a 和 libgtest_main.a 拷贝到系统的lib路径下:sudo cp libgtest*.a /usr/local/lib。
1.在写代码的时候,其余部分和visual studio中一样,但是clion中编写OpenGL需要修改一下自动生成的cmakelist.txt,下面给一个示例,按这个改就可以了。
cmake_minimum_required(VERSION 3.14) // 3.14是你的cmake版本,自动生成的
project(OpenGLDemo) // OpenGLDemo是你的项目名
set(CMAKE_CXX_STANDARD 11)
set(SOURCE_FILES main.cpp glad.c stb_image.cpp) // 这里的部分自动添加的
add_executable(OpenGLDemo ${SOURCE_FILES}) // OpenGLDemo是项目名
target_link_libraries(OpenGLDemo glfw3 GL m Xrandr Xi X11 Xxf86vm pthread dl Xinerama Xcursor) // 这里可以直接复制,项目名称要更改
2.在clion中如果用到了目录中的文件,注意当前目录是在cmake-debug-build中,并不是在本项目中,所以使用本项目中的文件需要加上"../"。