Visual?studio2022?利用glfw+glad配置OpenGL環(huán)境的詳細(xì)過(guò)程
1. 安裝visual studio 2022
鏈接:https://visualstudio.microsoft.com/zh-hans/

2. 配置openGL環(huán)境
搜索時(shí)最常見(jiàn)的是glut,但是了解到glut最后更新時(shí)間是1998年,比我還小兩歲…目前沒(méi)人維護(hù)了,也被棄用了…
目前,最常用的就是freeglut+glew和glfw+glad兩種組合。據(jù)說(shuō)前者比較經(jīng)典,后者比較新潮,所以作為潮人,我選擇了后者(具體可操作性待我實(shí)踐一段時(shí)間來(lái)看…)
2.1 glfw
2.1.1 安裝glfw包
鏈接:https://www.glfw.org/download.html

我的電腦是64位,就選64-bit下載
下載完是這樣的文件夾,保存在哪都行,最好是自己有專門的libraries文件夾,放里頭,好找。
解壓縮后里頭有include和lib兩個(gè)有用的東西,(記住這倆單詞,很常見(jiàn)!)

2.1.2 在visual studio 中配置glfw
這步看了很多文字鏈接,看不下去,最后在youtube上看見(jiàn)一個(gè)視頻,講的很明白!用評(píng)論的話講就是simple and straight to the point,這里放上鏈接:https://www.youtube.com/watch?v=HzFatL3WT6g&list=PL4BJMsnWjb27UZJNWOO1FUJp4LH-3xdpc&index=1&t=16s
在visual studio中:文件>新建>項(xiàng)目>空項(xiàng)目>命名(e.g., openGL1)

打開(kāi)后,右擊文件openGL1 > 添加 > 新建項(xiàng)

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

進(jìn)去之后,選擇菜單欄的 項(xiàng)目 > openGL1屬性,需要更改3處
更改1:C/C++ > 常規(guī) > 附加包含目錄 的路徑,改成剛才加壓的glfw文件夾的include文件夾


更改2:鏈接器 > 常規(guī) > 附加庫(kù)目錄 的路徑,改成剛才加壓的glfw文件夾的vc2022文件夾,因?yàn)槲蚁螺d的是2022版本的visual studio


更改3:鏈接器 > 輸入 > 附加依賴項(xiàng) 添加glfw3.lib;opengl32.lib;user32.lib;gdi32.lib;shell32.lib

最后,我們測(cè)試一下,復(fù)制documentation 這一整段代碼(不只是我截圖的這點(diǎn))
鏈接:https://www.glfw.org/documentation.html

運(yùn)行一下,成功!

2.2 glad
2.2.1 下載glad
鏈接:https://glad.dav1d.de/
這幾個(gè)設(shè)置好,gl版本可以選最新的,profile選core,最后點(diǎn)擊右下角的generate

下載這個(gè)glad.zip壓縮包,可以和glfw保存到一個(gè)文件夾下

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

2.2.2 在visual studio 中配置glad
glfw需要更改3處,glad需要更改1處,再設(shè)置1處
更改1:可以在剛才的openGL1項(xiàng)目下,依然打開(kāi)菜單欄 項(xiàng)目 > OpenGL屬性 > C/C++ > 常規(guī) > 附加包含目錄 再添加一個(gè)路徑指向glad解壓縮包的include文件夾 (反正用哪個(gè)包就把這個(gè) 附加包含目錄 指向哪個(gè)包include文件夾…)

設(shè)置1:這里用到加壓縮glad文件夾下的另一個(gè)東西,src文件夾下的glad.c
右擊源文件 > 添加 > 現(xiàn)有項(xiàng) 找到glad文件夾下的src文件夾下的glad.c


最后,測(cè)試一下,輸入以下代碼,運(yùn)行成功!就配置好啦??!搞了大半天,終于配置好環(huán)境了,明天繼續(xù)看看能用它三維建模不!
#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);
}

到此這篇關(guān)于Visual studio2022 利用glfw+glad配置OpenGL環(huán)境的文章就介紹到這了,更多相關(guān)Visual studio2022配置OpenGL環(huán)境內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語(yǔ)言關(guān)于include順序不同導(dǎo)致編譯結(jié)果不同的問(wèn)題
這篇文章主要介紹了在日常調(diào)試C語(yǔ)言中include的順序不同從而影響最后編譯結(jié)果不同的問(wèn)題,究其原因是寫代碼的習(xí)慣所導(dǎo)致,下面跟小編一起來(lái)看看吧2022-04-04
C語(yǔ)言將音視頻時(shí)鐘同步封裝成通用模塊的方法
視頻的時(shí)鐘基于視頻幀的時(shí)間戳,由于視頻是通過(guò)一定的幀率渲染的,采用直接讀取當(dāng)前時(shí)間戳的方式獲取時(shí)鐘會(huì)造成一定的誤差,精度不足,這篇文章主要介紹了c語(yǔ)言將音視頻時(shí)鐘同步封裝成通用模塊,需要的朋友可以參考下2022-09-09
QT升級(jí)6.0以上版本遇到問(wèn)題以及解決方法
更新新的QT后以前的舊版本建立的工程,自然會(huì)出現(xiàn)兼容性的問(wèn)題,本文主要介紹了QT升級(jí)6.0以上版本遇到問(wèn)題以及解決方法,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03
Qt使用windeployqt工具實(shí)現(xiàn)程序打包發(fā)布方法
本文主要介紹了Qt使用windeployqt工具實(shí)現(xiàn)程序打包發(fā)布方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11
C++求所有頂點(diǎn)之間的最短路徑(用Floyd算法)
這篇文章主要為大家詳細(xì)介紹了C++求所有頂點(diǎn)之間的最短路徑,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-04-04
C++中rapidjson將map轉(zhuǎn)為json的方法
今天小編就為大家分享一篇關(guān)于C++中rapidjson將map轉(zhuǎn)為json的方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-04-04

