在VS2017環境中配置OpenGL,我們分三步:配置GLFW、配置GLAD、導出項目模板。
配置GLFW
1.首先下載GLFW,點擊這里,進入Github下載。
或者
點擊這里從百度雲下載,提取碼為yavo。(注:該鏈接由中國大學MOOC萬琳老師計算機圖形學課程討論區提供)。
2.然后安裝Cmake后,在..\glfw-3.3文件夾下創建build文件夾。
打開Cmake按下圖進行配置:
接着點擊左下角的Configure,選擇對應的Visual Studio 15 2017(根據自己的ide自行選擇)。
點擊Finish。然后點擊Generate進行生成。完成后效果如圖所示。
3.接着我們打開VS 2017,新建一個空項目,然后右擊項目,選擇屬性
然后我們點擊左側的VC++ 目錄,我們將修改包含目錄與庫目錄。
點擊包含目錄->編輯,點擊右上角的新行后,出現一個新行,點擊行末尾的三個小點,選中剛剛下載的GLFW文件夾中的include文件夾。
接着點擊庫目錄,步驟與剛剛一致,只不過選中的是GLFW中的build文件夾中的src,然后選中src中的Debug文件夾。
接着我們點擊左側的鏈接器->輸入->附加依賴項->編輯
在其中輸入
opengl32.lib
glfw3.lib
點擊確定完成GLFW的配置!下面我們配置GLAD,暫時不要關閉VS。
配置GLAD
點擊這里,進入GLAD在線界面,language選中C/C++,在API內的gl選擇自己要下載的版本。Profile選擇Core,選中Generate a loader 后點擊Generate。
進入新網頁后右擊glad.zip,選擇將目標另存為,下載壓縮包。
解壓后,打開文件夾glad,點擊src,進入后,將glad.c復制到VS中當前項目的源文件夾下(在VS中右擊項目,點擊在文件資源管理器中打開即可打開文件夾當前項目文件夾)。
然后我們我們在VS中右擊源文件新建一個main.cpp文件,接着右擊源文件點擊添加->現有項,進入點擊剛剛拖進去的glad.c。
接着我們重復在配置GLFW時的修改包含目錄的步驟,把glad目錄下的include文件夾包含進去(這里就不截圖了,和上面步驟一樣)。
這樣GLAD的配置就完成了,我們可以在文件main.cpp中輸入下面的代碼進行嘗試:
#include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <iostream>
const unsigned int SCR_WIDTH = 800;
const unsigned int SCR_HEIGHT = 600;
int main()
{
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);
if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress))
{
std::cout << "Failed to initialize GLAD" << std::endl;
return -1;
}
while (!glfwWindowShouldClose(window))
{
glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
glfwSwapBuffers(window);
glfwPollEvents();
}
glfwTerminate();
return 0;
}
編譯后運行:
這樣OpenGL的配置基本完成,為了日后使用的方便,下面我們創建一個項目模板。
導出項目模板
為了日后使用OpenGL時不用再重復上面繁瑣的步驟,我們導出項目模板。
首先,在VS上方導航欄中選中項目->導出模板。
選中項目模板,點擊下一步。
為模板命名,這里我命名為OpenGL Project。
點擊完成。這樣一個OpenGL的項目模板就做好了。
重新打開VS,點擊新建項目,可以看到我們的項目模板已經成功導入了,這樣我們在下次創建OpenGL項目時就可以直接使用了~
如果覺得不錯,不妨關注一下哦~