自學(xué)openGL(四)-Mac 配置OpenGL 環(huán)境2

Mac 配置OpenGL 環(huán)境2

前言

在之前有寫過(guò)一篇Mac 配置OpenGL 開(kāi)發(fā)環(huán)境的文章,那篇文章是基于 CC 老師課程進(jìn)行配置的享完,在cc老師的教程中OpenGL開(kāi)發(fā)環(huán)境是基于 glut + glew 來(lái)實(shí)現(xiàn)食茎,而在網(wǎng)上查到的很多資料顯示glut是一個(gè)很老很老的庫(kù)了帘睦,現(xiàn)在基本上也沒(méi)人用,Xcode 集成開(kāi)發(fā)中就會(huì)報(bào)警告暂吉,https://learnopengl-cn.github.io/ 網(wǎng)站使用的是glfw 擴(kuò)展庫(kù)浑度,而不是glut擴(kuò)展庫(kù)寇窑。為了以后學(xué)習(xí)過(guò)程中更方便查資料,為了學(xué)習(xí)更加順利箩张,所以最終選擇不使用 CC老師的那一套搭建方法甩骏,自己調(diào)研了一套基于 glfw+glew+glm 搭建 OpenGL 開(kāi)發(fā)環(huán)境的方法。

本文中 OpenGL 擴(kuò)展庫(kù)

  • GLFW 渲染庫(kù)的作用:將OpenGL 渲染到幀緩沖區(qū)的內(nèi)容先慷,繪制到屏幕上的一個(gè)窗口中
  • GLEW 擴(kuò)展庫(kù):OpenGL 核心中有一些內(nèi)置的命令用來(lái)支持?jǐn)U展饮笛,為了使用每一個(gè)現(xiàn)代命令,需要執(zhí)行相當(dāng)復(fù)雜的代碼行论熙,所以使用擴(kuò)展庫(kù)來(lái)處理這些細(xì)節(jié)已經(jīng)成為標(biāo)準(zhǔn)做法福青,這樣能讓程序員可以直接用現(xiàn)代OpenGL 命令。
  • OpenGL Mathematics 數(shù)學(xué)庫(kù):3D 圖像變成大量使用了向量和矩陣代數(shù)脓诡。因此无午,配合一個(gè)支持常見(jiàn)數(shù)學(xué)計(jì)算任務(wù)的函數(shù)庫(kù)護(hù)著類包,能極大的方便OpenGL 的使用祝谚。OpenGL Mathematics 簡(jiǎn)稱 GLM宪迟。GLM 命令很方便地遵循和GLSL相同的命名慣例,使得來(lái)回于都特定應(yīng)用程序的C++ 和GLSL 代碼時(shí)更容易交惯。GLM可以在官網(wǎng)下載次泽。

準(zhǔn)備并安裝依賴庫(kù)

我們首先安裝 GLEW 和GLWE。安裝這些庫(kù)的最簡(jiǎn)單方法可能是使用 “Homebrew”工具席爽, Homebrew 是一個(gè)軟件包管理器意荤,旨在讓用戶可能簡(jiǎn)單地在Mac 上安裝常用的使用程序。在Mac 上的安裝方法如下:

  1. 打開(kāi)終端只锻;
  2. 輸入如下命令袭异,然后回車,需要等待一段時(shí)間炬藤,翻墻會(huì)快很多
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

接下來(lái)御铃,使用新安裝的 Homebrew 來(lái)安裝 GLEW和GLFE,步驟如下:

  1. 在終端提示符下輸入命令: brew install glfw3沈矿;
  2. 在終端提示符下輸入命令: brew install glew上真;
  3. 請(qǐng)注意,/usr/local/include 路徑下現(xiàn)在新增了兩個(gè)文件夾(在蘋果 M1 芯片系統(tǒng)中的路徑為 /opt/homebrew/include)羹膳,分別為 GL 和 GLFW.

接下來(lái)我們安裝數(shù)學(xué)庫(kù) GLM睡互。在4個(gè)庫(kù)中,它的安裝最簡(jiǎn)單,由于 GLM 是一個(gè)僅包含頭文件的庫(kù)就珠,因此只需要如下步驟:

  1. 下載 GLM 庫(kù)寇壳,地址:https://github.com/g-truc/glm/
  2. 將文件夾中的 glm 文件夾及其內(nèi)容復(fù)制到 /usr/local/include(在蘋果 M1 芯片系統(tǒng)中的路徑為 /opt/homebrew/include)目錄下妻怎。

準(zhǔn)備開(kāi)發(fā)環(huán)境

開(kāi)發(fā)環(huán)境使用 Xocde 集成IDE壳炎,如果你還沒(méi)有安裝Xcode ,那么需要進(jìn)行安裝一下逼侦,安裝過(guò)程也很簡(jiǎn)單匿辩,去App Store 直接搜索 Xcode,然后下載(xcode 比較大榛丢,所以需要下載很久)铲球。

安裝 Xcode 成功以后,需要配置使其使用OpenGL 以及上述擴(kuò)展庫(kù)晰赞。一下是我們?yōu)?C++/OpenGL 應(yīng)用程序成功設(shè)置 Xcode 的步驟稼病。

  1. 運(yùn)行Xcode,在 macOS 標(biāo)簽下創(chuàng)建一個(gè) command line tool(命令行工具)類型的項(xiàng)目掖鱼。將語(yǔ)言設(shè)置為 C++然走。
  2. 添加系統(tǒng)依賴庫(kù) OpenGL.framework 和 CoreFoundation
  3. 設(shè)置頭文件搜索路徑,如下所示锨用。
    1. 單擊項(xiàng)目名稱,選擇 Build Settings 選項(xiàng)卡隘谣。向下滾動(dòng)到“search paths”中(確保上方過(guò)濾器選擇 All 而非 Basic)增拥。
    2. 在 header search paths 中添加 /usr/local/include(在蘋果 M1 芯片系統(tǒng)中的路徑為 /opt/homebrew/include)
  4. 為鏈接階段設(shè)置二進(jìn)制文件,如下所示:
    1. 來(lái)到主面板中的 Build phases 下寻歧,展開(kāi) Link Binary with Libraries掌栅;
    2. 將 /usr/local/Cellar/glew/2.2.0_1/lib (在蘋果 M1 芯片系統(tǒng)中的路徑為 /opt/homebrew/Cellar/glew/2.2.0_1/lib)路徑下的 libGLEW.2.2.0.dylib 文件拖拽到 Link Binary with Libraries 下;
    3. 將 /usr/local/Cellar/glfw/3.3.4/lib(在蘋果 M1 芯片系統(tǒng)中的路徑為 /opt/homebrew/Cellar/glfw/3.3.4/lib)路徑下的 libglfw.3.3.dylib 文件拖拽到 Link Binary with Libraries 下码泛;

Link Binary with Libraries 截圖如下:

FileSharing.action.png

至此庫(kù)的引入工作已經(jīng)結(jié)束猾封,來(lái)到main.cpp 文件,引入頭文件并編譯

#include <iostream>
#define GLEW_STATIC
#include <GL/glew.h>
#include <GLFW/glfw3.h>

int main(int argc, const char * argv[]) {
    // insert code here...
    std::cout << "Hello, World!\n";
    return 0;
}

command+R 運(yùn)行噪珊,如果沒(méi)有報(bào)錯(cuò)的話說(shuō)明環(huán)境搭建成功了晌缘,如果你在搭建OpenGL 環(huán)境中遇到什么問(wèn)題,歡迎評(píng)論區(qū)留言或私信痢站,大家相互學(xué)習(xí)交流磷箕。

參考文獻(xiàn):

  1. 《計(jì)算機(jī)圖形學(xué)編程 使用 OpenGL 和 C++》第一章、附錄A阵难、附錄B岳枷;
  2. GLUT, freeGLUT, GLFW, GLEW, GLAD 關(guān)系與區(qū)別;
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市空繁,隨后出現(xiàn)的幾起案子殿衰,更是在濱河造成了極大的恐慌,老刑警劉巖盛泡,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件闷祥,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡饭于,警方通過(guò)查閱死者的電腦和手機(jī)蜀踏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)掰吕,“玉大人果覆,你說(shuō)我怎么就攤上這事≈呈欤” “怎么了局待?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)菱属。 經(jīng)常有香客問(wèn)我钳榨,道長(zhǎng),這世上最難降的妖魔是什么纽门? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任薛耻,我火速辦了婚禮,結(jié)果婚禮上赏陵,老公的妹妹穿的比我還像新娘饼齿。我一直安慰自己,他們只是感情好蝙搔,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布缕溉。 她就那樣靜靜地躺著,像睡著了一般吃型。 火紅的嫁衣襯著肌膚如雪证鸥。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,692評(píng)論 1 305
  • 那天勤晚,我揣著相機(jī)與錄音枉层,去河邊找鬼。 笑死赐写,一個(gè)胖子當(dāng)著我的面吹牛返干,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播血淌,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼矩欠,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼财剖!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起癌淮,我...
    開(kāi)封第一講書(shū)人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤躺坟,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后乳蓄,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體咪橙,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年虚倒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了美侦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡魂奥,死狀恐怖菠剩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情耻煤,我是刑警寧澤具壮,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站哈蝇,受9級(jí)特大地震影響棺妓,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜炮赦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一怜跑、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧吠勘,春花似錦性芬、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)幌陕。三九已至诵姜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間搏熄,已是汗流浹背棚唆。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留心例,地道東北人宵凌。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像止后,于是被迫代替她去往敵國(guó)和親瞎惫。 傳聞我的和親對(duì)象是個(gè)殘疾皇子溜腐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容