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 上的安裝方法如下:
- 打開(kāi)終端只锻;
- 輸入如下命令袭异,然后回車,需要等待一段時(shí)間炬藤,翻墻會(huì)快很多
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
接下來(lái)御铃,使用新安裝的 Homebrew 來(lái)安裝 GLEW和GLFE,步驟如下:
- 在終端提示符下輸入命令: brew install glfw3沈矿;
- 在終端提示符下輸入命令: brew install glew上真;
- 請(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ù)就珠,因此只需要如下步驟:
- 下載 GLM 庫(kù)寇壳,地址:https://github.com/g-truc/glm/;
- 將文件夾中的 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 的步驟稼病。
- 運(yùn)行Xcode,在 macOS 標(biāo)簽下創(chuàng)建一個(gè) command line tool(命令行工具)類型的項(xiàng)目掖鱼。將語(yǔ)言設(shè)置為 C++然走。
- 添加系統(tǒng)依賴庫(kù) OpenGL.framework 和 CoreFoundation
- 設(shè)置頭文件搜索路徑,如下所示锨用。
- 單擊項(xiàng)目名稱,選擇 Build Settings 選項(xiàng)卡隘谣。向下滾動(dòng)到“search paths”中(確保上方過(guò)濾器選擇 All 而非 Basic)增拥。
- 在 header search paths 中添加 /usr/local/include(在蘋果 M1 芯片系統(tǒng)中的路徑為 /opt/homebrew/include)
- 為鏈接階段設(shè)置二進(jìn)制文件,如下所示:
- 來(lái)到主面板中的 Build phases 下寻歧,展開(kāi) Link Binary with Libraries掌栅;
- 將 /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 下;
- 將 /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 截圖如下:
至此庫(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):
- 《計(jì)算機(jī)圖形學(xué)編程 使用 OpenGL 和 C++》第一章、附錄A阵难、附錄B岳枷;
- GLUT, freeGLUT, GLFW, GLEW, GLAD 關(guān)系與區(qū)別;