OS X系統(tǒng)上搭建第一個(gè)OpenGL Demo

從事iOS開(kāi)發(fā)也有幾年了,一直開(kāi)發(fā)通用應(yīng)用APP,上周開(kāi)始了個(gè)培訓(xùn)班,內(nèi)容是OpenGL,由于此前未涉獵過(guò),故在此記錄第一節(jié)課學(xué)習(xí)到的內(nèi)容。

一、 首先是OpenGL的環(huán)境搭建

從本人的理解,感覺(jué)叫環(huán)境的搭建不是特別合理,實(shí)際上就是OpenGL相關(guān)庫(kù)的如何引用而已。就像開(kāi)發(fā)應(yīng)用APP時(shí)需要使用到藍(lán)牙相關(guān)功能時(shí)需要導(dǎo)入CoreBluetooth.framework類(lèi)似。具體操作如下

1. 打開(kāi)Xcode,然后選擇菜單File->New->Project,也可以直接使用快捷鍵,新建一個(gè)Demo工程

2.?添加引用OpenGL.framework和GLUT.framework兩個(gè)系統(tǒng)庫(kù)到工程中

3. 修改main.c文件,添加繪畫(huà)的代碼

至此,已經(jīng)把第一節(jié)課講的畫(huà)個(gè)簡(jiǎn)單的圓給搗鼓出來(lái)了。看到這里有很多同學(xué)可能會(huì)有疑問(wèn),老師不是說(shuō)要添加GLTools庫(kù)嗎?不是要將main.c給刪除,然后新建個(gè)main.cpp嗎?

其實(shí)老師所給的GLTools只是OpenGL的擴(kuò)展庫(kù),用于幫助C/C++開(kāi)發(fā)者初始化擴(kuò)展并書(shū)寫(xiě)可移植的應(yīng)用程序,在上面的簡(jiǎn)單繪圓Demo中還沒(méi)用到擴(kuò)展庫(kù)中的功能,所以不添加也是可以的。另外main.c文件不用刪除和添加main.cpp文件也可以通過(guò),本人理解是OS X mac開(kāi)發(fā)是支持C語(yǔ)言開(kāi)發(fā)的,而老師說(shuō)要?jiǎng)h除無(wú)關(guān)文件并添加main.cpp,我想是C++開(kāi)發(fā)的習(xí)慣吧,也是以后學(xué)習(xí)復(fù)雜OpenGL編程采用面向?qū)ο箝_(kāi)發(fā)的一個(gè)基礎(chǔ)。

-------------------------------------------------------------------------------------------------------

由于開(kāi)班是在年底,時(shí)間比較匆忙,都來(lái)不及消化整理,上面部分是在外地時(shí)寫(xiě)的,現(xiàn)在回到老家補(bǔ)充下半部分。

上半部分記錄了自己對(duì)第一節(jié)課的部分知識(shí)的一個(gè)理解,下半部分是根據(jù)CC老師講解的繪制三角形而自己操作了一遍。由于上半部分的操作實(shí)際只涉及到OpenGL庫(kù)的引用并沒(méi)有用到擴(kuò)展庫(kù),所以下半部分針對(duì)擴(kuò)展庫(kù)的引用進(jìn)行實(shí)際操作。

同上新建一個(gè)工程,然后刪除無(wú)關(guān)文件,以及添加OpenGL.framework和GLUT.framework庫(kù)。也可以在上面的工程基礎(chǔ)上進(jìn)行接下來(lái)的操作。

1.添加OpenGL擴(kuò)展庫(kù),添加相關(guān)頭文件到工程中,如下圖

添加頭文件

2.添加.a庫(kù)文件

添加庫(kù)文件

注意看上圖,我已經(jīng)把main文件改為.cpp了,上半部分提到點(diǎn)main文件可以不改,但是下半部分由于引用到擴(kuò)展庫(kù),而擴(kuò)展庫(kù)中都是C++實(shí)現(xiàn),所以此處將main文件改為main.cpp

3.添加圖形繪制方法,如下圖

main方法
初始設(shè)置
渲染實(shí)現(xiàn)

然后運(yùn)行即可得結(jié)果。雖然在聽(tīng)課的時(shí)候都是跟著老師的節(jié)奏來(lái)的,但是流程并不能熟悉的記住,通過(guò)動(dòng)手實(shí)現(xiàn)才能更深刻的理解與熟悉流程。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,153評(píng)論 25 708
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,618評(píng)論 19 139
  • 今天是立冬,暖暖的太陽(yáng),大大的風(fēng)。 都說(shuō)春困秋乏夏打盹,我在立冬的日子里愣是困到不能自己。說(shuō)好的在圖書(shū)館看書(shū),結(jié)果...
    冰淇淋在路上閱讀 358評(píng)論 18 4
  • 我想, 我現(xiàn)在 沒(méi)錢(qián), 沒(méi)車(chē), 沒(méi)房, 也還沒(méi)有 只你喜歡的貓…… 而我在等你來(lái), 一起 養(yǎng)只你喜歡的貓
    話(huà)少的老李頭閱讀 140評(píng)論 0 0

友情鏈接更多精彩內(nèi)容