OpenGL環(huán)境搭建(VS2019+GLFW+GLAD)

一滔灶、寫在前面

OpenGL是一個API,是一組用來操作圖形吼肥、圖像的函數录平。

我相信你可能對涉及到的庫,有一些搞不清楚缀皱。下面就簡單介紹(網上拷貝的斗这,感覺寫得簡潔好懂):

glew是對底層OpenGL接口的封裝,代碼可跨平臺啤斗。

glad與glew作用相同表箭,glad可看作glew的升級版。

Freeglut主要用于創(chuàng)建OpenGL上下文钮莲、接收一些鼠標鍵盤事件等等免钻。

glfw是Freeglut升級版,作用基本相同崔拥。


本次環(huán)境我們選擇glfw+glad极舔。IDE選擇VS2019。

二链瓦、安裝VS2019

這個安裝過于簡單拆魏,在https://visualstudio.microsoft.com/zh-hans/downloads/? 中選擇“community”版本,下載安裝就可以慈俯。

下載IDE

安裝時渤刃,為了保持輕量,我們只選擇一個“使用C++的桌面開發(fā)”

選擇安裝的組件

如果你安裝過微軟的東西肥卡,后面就按照提示安裝吧溪掀,超級簡單。

三步鉴、GLFW安裝

本來有兩種配置方式揪胃,一種是用CMAKE進行源碼編譯安裝,生成庫文件氛琢,但筆者用cmake編譯后喊递,提示32位和64位沖突,由于筆者懶阳似,沒有重試骚勘,于是就選擇了第二種,直接下載編譯好的庫文件,別說俏讹,筆者幸運当宴,直接能用,聽說有一些人直接下載并不能用泽疆。

打開http://www.reibang.com/p/64fe4a4c1ed8户矢,選擇32位的庫文件(聽說64位的用起來會很麻煩的)

選擇文件類型

下載下來直接解壓,把“l(fā)ib-vc2019”下的“glfw3.lib”文件和“include”下的“GLFW”文件夾拷出來備用殉疼。

四梯浪、GLAD配置

GLAD是一個在線服務,線上操作瓢娜,直接把生成的文件下載挂洛。

打開https://glad.dav1d.de/ 按照下面的配置:

GLAD在線配置

點擊“GENERATE”后,把glad.zip下載下來:

下載glad.zip

解壓后拷出來備用眠砾。

至此虏劲,所有需要的庫文件都準備好了。

五荠藤、庫文件夾組織

在電腦中選擇一個文件夾作為OpenGL庫文件的存放目錄伙单,筆者選擇的是d:\OpenGL\package

然后將三四兩步中所涉及的文件和文件夾用以下結構組織:

文件目錄組織

六、VS配置

打開VS哈肖,點擊“視圖”-》“屬性頁”吻育,找到“配置屬性”-》“VC++目錄”,進行以下操作:

先點擊“包含目錄”淤井,點擊“編輯”布疼,如下圖

屬性頁

點擊下圖中的小按鈕,選擇D:\OpenGL\Package\include 目錄

選擇包含目錄

相似的币狠,點擊“庫目錄”下的“編輯”游两,如下圖

庫目錄

點擊后面小按鈕悠咱,選擇D:\OpenGL\Package\lib

選擇庫目錄

接下來打開“鏈接器”-》“輸入”-》“附加依賴項”中的“編輯”震庭,如下圖

附加依賴項

在編輯框中輸入如下圖兩項,點擊確定

附加依賴項

至此惊橱,包含目錄和庫目錄止吐,以及附加依賴庫都設置完畢宝踪,下面進行程序測試。

在VS中新建一個空項目碍扔。

新建一個空項目

在“解決方案管理器”中瘩燥,進行以下操作:

添加源文件

在彈出的對話框選擇D:\OpenGL\Packages\src\glad.c

再在“源文件”中添加一個“新建項”,添加一個C++文件不同,如下圖

添加c++文件

在此源文件中厉膀,添加如下代碼(代碼可先不用深究):

#include <glad/glad.h>

#include <GLFW/glfw3.h>

#include <iostream>

void framebuffer_size_callback(GLFWwindow* window, int width, int height);

void processInput(GLFWwindow* window);

// settings

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);

#ifdef __APPLE__

? ? glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);

#endif

? ? 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);

? ? glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);

? ? if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress))

? ? {

? ? ? ? std::cout << "Failed to initialize GLAD" << std::endl;

? ? ? ? return -1;

? ? }

? ? while (!glfwWindowShouldClose(window))

? ? {??

? ? ? ? processInput(window);? ?

? ? ? ? glClearColor(0.2f, 0.3f, 0.3f, 1.0f);

? ? ? ? glClear(GL_COLOR_BUFFER_BIT);

? ??? ? glfwSwapBuffers(window);

? ? ? ? glfwPollEvents();

? ? }

? ? glfwTerminate();

? ? return 0;

}

void processInput(GLFWwindow* window)

{

? ? if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS)

? ? ? ? glfwSetWindowShouldClose(window, true);

}

void framebuffer_size_callback(GLFWwindow* window, int width, int height)

{

? ? glViewport(0, 0, width, height);

}

之后點擊如下按鈕

調試

出現如下結果

調試結果

自此溶耘,環(huán)境搭建成功。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末服鹅,一起剝皮案震驚了整個濱河市凳兵,隨后出現的幾起案子,更是在濱河造成了極大的恐慌菱魔,老刑警劉巖留荔,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吟孙,死亡現場離奇詭異澜倦,居然都是意外死亡,警方通過查閱死者的電腦和手機杰妓,發(fā)現死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進店門藻治,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人巷挥,你說我怎么就攤上這事桩卵。” “怎么了倍宾?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵雏节,是天一觀的道長。 經常有香客問我高职,道長钩乍,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任怔锌,我火速辦了婚禮寥粹,結果婚禮上,老公的妹妹穿的比我還像新娘埃元。我一直安慰自己涝涤,他們只是感情好,可當我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布岛杀。 她就那樣靜靜地躺著阔拳,像睡著了一般。 火紅的嫁衣襯著肌膚如雪类嗤。 梳的紋絲不亂的頭發(fā)上糊肠,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天,我揣著相機與錄音土浸,去河邊找鬼罪针。 笑死,一個胖子當著我的面吹牛黄伊,可吹牛的內容都是我干的泪酱。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼墓阀!你這毒婦竟也來了毡惜?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤斯撮,失蹤者是張志新(化名)和其女友劉穎经伙,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體勿锅,經...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡帕膜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了溢十。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片垮刹。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖张弛,靈堂內的尸體忽然破棺而出荒典,到底是詐尸還是另有隱情,我是刑警寧澤吞鸭,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布寺董,位于F島的核電站,受9級特大地震影響刻剥,放射性物質發(fā)生泄漏遮咖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一透敌、第九天 我趴在偏房一處隱蔽的房頂上張望盯滚。 院中可真熱鬧,春花似錦酗电、人聲如沸魄藕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽背率。三九已至,卻和暖如春嫩与,著一層夾襖步出監(jiān)牢的瞬間寝姿,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工划滋, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留饵筑,地道東北人。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓处坪,卻偏偏與公主長得像根资,于是被迫代替她去往敵國和親架专。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內容