下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、OpenGL入門學(xué)習(xí)寫給想用計算機(jī)畫圖的朋友OpenGL作為當(dāng)前主流的圖形API之一,它在一些場合具有比DirectX更優(yōu)越的特性。1、與C語言緊密結(jié)合。OpenGL命令最初就是用C語言函數(shù)來進(jìn)行描述的,對于學(xué)習(xí)過C語言的人來講,OpenGL是容易理解和學(xué)習(xí)的。如果你曾經(jīng)接觸過TC的graphics.h,你會發(fā)現(xiàn),使用OpenGL作圖甚至比TC更加簡單。2、強(qiáng)大的可移植性。微軟的Direct3D雖然也是十分優(yōu)秀的圖形API,但它只用于Windows系統(tǒng)。而OpenGL不僅用于Windows,還可以用于Unix/Linux等其它系統(tǒng),它甚至在大型計算機(jī)、各種專業(yè)計算機(jī)(如:醫(yī)療用顯示設(shè)備)上都有
2、應(yīng)用。并且,OpenGL的基本命令都做到了硬件無關(guān),甚至是平臺無關(guān)。3、高性能的圖形渲染。OpenGL是一個工業(yè)標(biāo)準(zhǔn),它的技術(shù)緊跟時代,現(xiàn)今各個顯卡廠家無一不對OpenGL提供強(qiáng)力支持,激烈的競爭中使得OpenGL性能一直領(lǐng)先。OpenGL官方網(wǎng)站(英文)下面將對Windows下的OpenGL編程進(jìn)行簡單介紹。 學(xué)習(xí)OpenGL前的準(zhǔn)備工作 第一步,選擇一個編譯環(huán)境現(xiàn)在Windows系統(tǒng)的主流編譯環(huán)境有Visual Studio,Broland C+ Builder,Dev-C+等,它們都是支持OpenGL的。這里我們選擇VC+6.0作為學(xué)習(xí)OpenGL
3、的環(huán)境。 第二步,安裝GLUT工具包GLUT下載地址:(大小約為150k)/resources/libraries/glut/glut_downloads.php/glutdlls37beta.zipWindows環(huán)境下安裝GLUT的步驟:1、將下載的壓縮包解開,將得到5個文件(glut.h glut.lib glut32.lib glut.dll glut32.dll)2、把解壓得到的glut.h復(fù)制到VC的“includegl”文件夾下。3、把解壓得到的glut.lib和glut32.lib復(fù)制到靜態(tài)函數(shù)庫所在文件夾 “VClib”文件夾。4、把解壓
4、得到的glut.dll和glut32.dll復(fù)制到操作系統(tǒng)目錄下面的system32文件夾內(nèi)。(典型的位置為:C:WindowsSystem32)第三步,建立一個OpenGL工程1、啟動VC+6.0程序2、選擇File->New->Project,然后選擇Win32 Console Application,選擇一個工程名稱并設(shè)置好工程所在位置,然后按OK。在彈出的對話框右邊點(diǎn)Empty project,選擇Finish。3、然后向該工程添加一個代碼文件,文件擴(kuò)展名為.c(注意用.c來作為文件結(jié)尾。)添加代碼文件的方法:方法一:添加已經(jīng)存在的.c文件。在FileView 管理器中,選
5、擇Source Files文件夾-右擊-Add Files to Folder。或者從“工程”菜單-“增加到工程”-“文件”。方法二:添加不存在的.c文件。從“文件”菜單-“新建”-選擇“文件”選項(xiàng)卡-C+ Source File,將右邊的“添加到工程”打勾,在“文件名”處輸入擴(kuò)展名為.c的文件名(記住一定輸入擴(kuò)展名 .c !)-“確定”,然后在.c文件中輸入代碼。第四步,編譯連接。在菜單“Build”中選擇Compile或Build。第五步,執(zhí)行程序。在菜單“Build”中選擇Execute執(zhí)行。(說明:以上創(chuàng)建的是一個Win32控制臺程序,包含一個控制窗口和OpenGL窗口。如果只需要一個
6、OpenGL窗口的應(yīng)用程序,則將上面的第三步中的2小步改為:2、選擇File->New->Project,然后選擇Win32 Application,選擇一個工程名稱并設(shè)置好工程所在位置,然后按OK。在彈出的對話框右邊點(diǎn)Empty project,選擇Finish。同時,在第四步編譯連接前,要先進(jìn)行編譯和連接選項(xiàng)的設(shè)置:選擇 Project -> settings ->選擇 Link 選項(xiàng)卡: 從 Category(分類)中選擇 Output(輸出),在 Entry-point synmbol(入口點(diǎn))文本框中鍵入 mainCRTStartup ;從 Category(
7、分類)中選擇 “常規(guī)”,在Object/library modules(對象/庫模式)一欄中添加: opengl32.lib glu32.lib glut32.lib這三個OpenGL的鏈接庫。)(說明: 對于已存在的控制臺工程, 有一個簡單的辦法將它轉(zhuǎn)換成Win32應(yīng)用程序: 根據(jù)上面的步驟修改入口點(diǎn) 在 Project options 文本框中用 subsystem:windows 覆蓋 subsystem:console或者你可以直接在你的源代碼開頭處添加一行代碼:#pragma comment( linker, "/subsystem:"windows"
8、/entry:"mainCRTStartup"" ) 如此一來,應(yīng)用程序就不會出現(xiàn)控制臺窗口,而只是一個OpenGL窗口了。)第一個OpenGL程序一個簡單的OpenGL程序如下:(注意,如果需要編譯并運(yùn)行,需要正確安裝GLUT,安裝方法如上所述)/ OpenGl.c #include <GL/glut.h>void myDisplay(void)glClear(GL_COLOR_BUFFER_BIT);glRectf(-0.5f, -0.5f, 0.5f, 0.5f);glFlush();int main(int argc, char *argv)g
9、lutInit(&argc, argv);glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);glutInitWindowPosition(100, 100);glutInitWindowSize(400, 400);glutCreateWindow("第一個OpenGL程序");glutDisplayFunc(&myDisplay);glutMainLoop();return 0;該程序的作用是在一個黑色的窗口中央畫一個白色的矩形。下面對各行語句進(jìn)行說明。 怎么樣?代碼還不算長吧?首先,需要包含頭文件#include&l
10、t;GL/glut.h>,這是GLUT的頭文件。本來OpenGL程序一般還要包含<GL/gl.h>和<GL/glu.h>,但GLUT的頭文件中已經(jīng)自動將這兩個文件包含了,不必再次包含。然后看main函數(shù)。int main(int argc, char *argv),這個是帶命令行參數(shù)的main函數(shù),各位應(yīng)該見過吧?沒見過的同志們請多翻翻書,等弄明白了再往下看。注意main函數(shù)中的各語句,除了最后的return之外,其余全部以glut開頭。這種以glut開頭的函數(shù)都是GLUT工具包所提供的函數(shù),下面對用到的幾個函數(shù)進(jìn)行介紹。1、glutInit,對GLUT進(jìn)行初始化
11、,這個函數(shù)必須在其它的GLUT使用之前調(diào)用一次。其格式比較死板,一般照抄這句glutInit(&argc, argv)就可以了。2、glutInitDisplayMode,設(shè)置顯示方式,其中GLUT_RGB表示使用RGB顏色,與之對應(yīng)的還有GLUT_INDEX(表示使用索引顏色)。GLUT_SINGLE表示使用單緩沖,與之對應(yīng)的還有GLUT_DOUBLE(使用雙緩沖)。更多信息,請自己Google。當(dāng)然以后的教程也會有一些講解。3、glutInitWindowPosition,這個簡單,設(shè)置窗口在屏幕中的位置。4、glutInitWindowSize,這個也簡單,設(shè)置窗口的大小。5、g
12、lutCreateWindow,根據(jù)前面設(shè)置的信息創(chuàng)建窗口。參數(shù)將被作為窗口的標(biāo)題。注意:窗口被創(chuàng)建后,并不立即顯示到屏幕上。需要調(diào)用glutMainLoop才能看到窗口。6、glutDisplayFunc,設(shè)置一個函數(shù),當(dāng)需要進(jìn)行畫圖時,這個函數(shù)就會被調(diào)用。(這個說法不夠準(zhǔn)確,但準(zhǔn)確的說法可能初學(xué)者不太好理解,暫時這樣說吧)。7、glutMainLoop,進(jìn)行一個消息循環(huán)。(這個可能初學(xué)者也不太明白,現(xiàn)在只需要知道這個函數(shù)可以顯示窗口,并且等待窗口關(guān)閉后才會返回,這就足夠了。)在glutDisplayFunc函數(shù)中,我們設(shè)置了“當(dāng)需要畫圖時,請調(diào)用myDisplay函數(shù)”。于是myDisplay函數(shù)就用來畫圖。觀察myDisplay中的三個函數(shù)調(diào)用,發(fā)現(xiàn)它們都以gl開頭。這種以gl開頭的函數(shù)都是OpenGL的標(biāo)準(zhǔn)函數(shù),下面對用到的函數(shù)進(jìn)行介紹。1、glClear,清除。GL_COLOR_
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 體育館環(huán)境衛(wèi)生承諾書
- 2024年研發(fā)設(shè)計與技術(shù)咨詢協(xié)議3篇
- 證券公司投資資產(chǎn)管理
- SP館租賃合同模板
- 鐵路軌道施工安全合同
- 設(shè)計工作室隔斷租賃協(xié)議
- 跨境支付項(xiàng)目澄清函參考模板
- 環(huán)保行業(yè)污染防治培訓(xùn)費(fèi)管理辦法
- 能源利用評審員管理辦法
- 機(jī)場化糞池改造工程合同
- 脊柱區(qū)1教學(xué)講解課件
- KK5-冷切鋸操作手冊-20151124
- 教你炒紅爐火版00纏論大概
- 消防管道施工合同
- 大學(xué)生計算與信息化素養(yǎng)-北京林業(yè)大學(xué)中國大學(xué)mooc課后章節(jié)答案期末考試題庫2023年
- 2023年國開大學(xué)期末考復(fù)習(xí)題-3987《Web開發(fā)基礎(chǔ)》
- 《駱駝祥子》1-24章每章練習(xí)題及答案
- 國際金融課后習(xí)題答案(吳志明第五版)第1-9章
- 《基于杜邦分析法周大福珠寶企業(yè)盈利能力分析報告(6400字)》
- 全國英語等級考試三級全真模擬試題二-2023修改整理
- 02R112 拱頂油罐圖集
評論
0/150
提交評論