首頁 > 軟體

Visual studio2022 利用glfw+glad設定OpenGL環境的詳細過程

2022-10-16 14:00:39

1. 安裝visual studio 2022

連結:https://visualstudio.microsoft.com/zh-hans/

2. 設定openGL環境

搜尋時最常見的是glut,但是瞭解到glut最後更新時間是1998年,比我還小兩歲…目前沒人維護了,也被棄用了…
目前,最常用的就是freeglut+glew和glfw+glad兩種組合。據說前者比較經典,後者比較新潮,所以作為潮人,我選擇了後者(具體可操作性待我實踐一段時間來看…)

2.1 glfw

2.1.1 安裝glfw包

連結:https://www.glfw.org/download.html

我的電腦是64位元,就選64-bit下載

下載完是這樣的資料夾,儲存在哪都行,最好是自己有專門的libraries資料夾,放裡頭,好找。
解壓縮后里頭有include和lib兩個有用的東西,(記住這倆單詞,很常見!)

2.1.2 在visual studio 中設定glfw

這步看了很多文字連結,看不下去,最後在youtube上看見一個視訊,講的很明白!用評論的話講就是simple and straight to the point,這裡放上連結:https://www.youtube.com/watch?v=HzFatL3WT6g&list=PL4BJMsnWjb27UZJNWOO1FUJp4LH-3xdpc&index=1&t=16s

在visual studio中:檔案>新建>專案>空專案>命名(e.g., openGL1)

開啟後,右擊檔案openGL1 > 新增 > 新建項

選擇c++檔案,命名隨便,大家都命名main.cpp,不知道為啥,但是我也這樣寫…

進去之後,選擇選單欄的 專案 > openGL1屬性,需要更改3處
更改1:C/C++ > 常規 > 附加包含目錄 的路徑,改成剛才加壓的glfw資料夾的include資料夾

更改2:連結器 > 常規 > 附加庫目錄 的路徑,改成剛才加壓的glfw資料夾的vc2022資料夾,因為我下載的是2022版本的visual studio

更改3:連結器 > 輸入 > 附加依賴項 新增glfw3.lib;opengl32.lib;user32.lib;gdi32.lib;shell32.lib

最後,我們測試一下,複製documentation 這一整段程式碼(不只是我截圖的這點)
連結:https://www.glfw.org/documentation.html

執行一下,成功!

2.2 glad

2.2.1 下載glad

連結:https://glad.dav1d.de/
這幾個設定好,gl版本可以選最新的,profile選core,最後點選右下角的generate

下載這個glad.zip壓縮包,可以和glfw儲存到一個資料夾下

解壓縮裡頭有倆東西,include和src

2.2.2 在visual studio 中設定glad

glfw需要更改3處,glad需要更改1處,再設定1處
更改1:可以在剛才的openGL1專案下,依然開啟選單欄 專案 > OpenGL屬性 > C/C++ > 常規 > 附加包含目錄 再新增一個路徑指向glad解壓縮包的include資料夾 (反正用哪個包就把這個 附加包含目錄 指向哪個包include資料夾…)

設定1:這裡用到加壓縮glad資料夾下的另一個東西,src資料夾下的glad.c
右擊原始檔 > 新增 > 現有項 找到glad資料夾下的src資料夾下的glad.c

最後,測試一下,輸入以下程式碼,執行成功!就設定好啦!!搞了大半天,終於設定好環境了,明天繼續看看能用它三維建模不!


#include<glad/glad.h>
#include<GLFW/glfw3.h>
 
#include<iostream>
 
void framebuffer_size_callback(GLFWwindow* window, int width, int height);
int main()
{
    glfwInit();
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
    glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
    //glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
    
    GLFWwindow* window = glfwCreateWindow(800, 600, "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;
    }
    
    glViewport(0, 0, 800, 600);
    
    glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);
    
    while (!glfwWindowShouldClose(window))
    {
        glfwSwapBuffers(window);
        glfwPollEvents();
    }
    glfwTerminate();
    return 0;
}
 
void framebuffer_size_callback(GLFWwindow* window, int width, int height)
{
    glViewport(0, 0, width, height);
}

到此這篇關於Visual studio2022 利用glfw+glad設定OpenGL環境的文章就介紹到這了,更多相關Visual studio2022設定OpenGL環境內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com