openGL環(huán)境搭建

一尾膊、準(zhǔn)備資源

? ? 1.CLTools

?? ?2.glew

? ? 3.libGLTools.a

點(diǎn)擊下載資源

二可免、開始配置openGL環(huán)境

? ?1牡拇、Xcode -> macOS -> Cocoa Application

創(chuàng)建一個(gè)mac程序

????2帚稠、在project->Build Phases->Link Binary With Libraries項(xiàng)中添加OpenGl.framework 和GLUT.framework兩個(gè)系統(tǒng)庫

導(dǎo)入兩個(gè)系統(tǒng)庫

3怎囚、添加?CLTools.h,glew.h

? ? ? 方法1:

添加文件到工程

選擇下載好的資源添加

? ? 將libGLTools.a庫放到Frameworks下

完成導(dǎo)入到工程

? ? 4卿叽、刪除工程中多余文件main.m、AppDelegate.h恳守、AppDelegate.m考婴、 ? ? ? ? ? ViewController.h、ViewController.m

? ? 5催烘、創(chuàng)建main.cpp文件

創(chuàng)建c++文件

創(chuàng)建main.m文件沥阱,不需要?jiǎng)?chuàng)建.h文件,去掉勾

創(chuàng)建main文件

? ? 6伊群、復(fù)制以下代碼到main.cpp中

#include "GLTools.h"#includeGLBatch triangleBatch;

GLShaderManager shaderManager;

//窗口大小改變時(shí)接受新的寬度和高度考杉,其中0,0代表窗口中視口的左下角坐標(biāo)策精,w,h代表像素

void ChangeSize(int w,int h) {

? ? glViewport(0,0, w, h);

}

//為程序作一次性的設(shè)置

void SetupRC() {

? ? //設(shè)置背影顏色

? ? glClearColor(0.0f,0.0f,1.0f,1.0f);

? ? //初始化著色管理器

? ? shaderManager.InitializeStockShaders();

? ? //設(shè)置三角形崇棠,其中數(shù)組vVert包含所有3個(gè)頂點(diǎn)的x,y,笛卡爾坐標(biāo)對咽袜。

? ? GLfloat vVerts[] = {

? ? ? ? -0.5f,0.0f,0.0f,

? ? ? ? 0.5f,0.0f,0.0f,

? ? ? ? 0.0f,0.5f,0.0f,

? ? };

? ? //批次處理

? ? triangleBatch.Begin(GL_TRIANGLES,3);

? ? triangleBatch.CopyVertexData3f(vVerts);

? ? triangleBatch.End();

}

//開始渲染

void RenderScene(void) {

? ? //清除一個(gè)或一組特定的緩沖區(qū)

? ? glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT);

? ? //設(shè)置一組浮點(diǎn)數(shù)來表示紅色

? ? GLfloat vRed[] = {1.0f,0.0f,0.0f,1.0f};

? ? //傳遞到存儲(chǔ)著色器,即GLT_SHADER_IDENTITY著色器枕稀,這個(gè)著色器只是使用指定顏色以默認(rèn)笛卡爾坐標(biāo)第在屏幕上渲染幾何圖形

? ? shaderManager.UseStockShader(GLT_SHADER_IDENTITY,vRed);

? ? //提交著色器

? ? triangleBatch.Draw();

? ? //將在后臺(tái)緩沖區(qū)進(jìn)行渲染询刹,然后在結(jié)束時(shí)交換到前臺(tái)

? ? glutSwapBuffers();

}

int main(int argc,char* argv[]) {

? ? //設(shè)置當(dāng)前工作目錄,針對MAC OS X

? ? gltSetWorkingDirectory(argv[0]);

? ? //初始化GLUT庫

? ? glutInit(&argc, argv);

? ? /*初始化雙緩沖窗口萎坷,其中標(biāo)志GLUT_DOUBLE凹联、GLUT_RGBA、GLUT_DEPTH食铐、GLUT_STENCIL分別指

? ? 雙緩沖窗口匕垫、RGBA顏色模式、深度測試虐呻、模板緩沖區(qū)*/

? ? glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA|GLUT_DEPTH|GLUT_STENCIL);

? ? //GLUT窗口大小象泵,標(biāo)題窗口

? ? glutInitWindowSize(800,600);

? ? glutCreateWindow("Triangle");

? ? //注冊回調(diào)函數(shù)(這兩個(gè)函數(shù)有一個(gè)不注冊,窗口就彈不起來斟叼,因?yàn)樵趩?dòng)的一瞬間也是需要調(diào)用的偶惠,以后窗口或界面調(diào)用也會(huì)更改)

? ? glutReshapeFunc(ChangeSize);

? ? glutDisplayFunc(RenderScene);

? ? //驅(qū)動(dòng)程序的初始化中沒有出現(xiàn)任何問題。

? ? GLenum err = glewInit();

? ? if(GLEW_OK != err) {

? ? ? ? fprintf(stderr,"glew error:%s\n",glewGetErrorString(err));

? ? ? ? return 1;

? ? }

? ? //調(diào)用SetupRC

? ? SetupRC();

? ? glutMainLoop();

? ? return 0;

}

? ? 7朗涩、將文件<>系統(tǒng)引入改為""普通引入忽孽,運(yùn)行

成功運(yùn)行起來

? ? 到此openGL環(huán)境搭建就完成了。

? 補(bǔ)充:個(gè)人在運(yùn)行時(shí)報(bào)了以下錯(cuò)誤

報(bào)錯(cuò)截圖

找不到gltools庫谢床,重新刪除再添加就可以了

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末兄一,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子识腿,更是在濱河造成了極大的恐慌出革,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件渡讼,死亡現(xiàn)場離奇詭異骂束,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)成箫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進(jìn)店門展箱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蹬昌,你說我怎么就攤上這事混驰。” “怎么了?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵账胧,是天一觀的道長竞慢。 經(jīng)常有香客問我,道長治泥,這世上最難降的妖魔是什么筹煮? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮居夹,結(jié)果婚禮上败潦,老公的妹妹穿的比我還像新娘。我一直安慰自己准脂,他們只是感情好劫扒,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著狸膏,像睡著了一般沟饥。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上湾戳,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天贤旷,我揣著相機(jī)與錄音,去河邊找鬼砾脑。 笑死幼驶,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的韧衣。 我是一名探鬼主播盅藻,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼畅铭!你這毒婦竟也來了氏淑?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤硕噩,失蹤者是張志新(化名)和其女友劉穎假残,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體榴徐,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年匀归,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了坑资。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,722評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡穆端,死狀恐怖袱贮,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情体啰,我是刑警寧澤攒巍,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布嗽仪,位于F島的核電站,受9級特大地震影響柒莉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一技竟、第九天 我趴在偏房一處隱蔽的房頂上張望睬捶。 院中可真熱鬧,春花似錦跨蟹、人聲如沸雳殊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽夯秃。三九已至,卻和暖如春痢艺,著一層夾襖步出監(jiān)牢的瞬間仓洼,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工腹备, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留衬潦,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓植酥,卻偏偏與公主長得像镀岛,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子友驮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評論 2 353

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