OpenGL編程實(shí)習(xí)報(bào)告_第1頁(yè)
OpenGL編程實(shí)習(xí)報(bào)告_第2頁(yè)
OpenGL編程實(shí)習(xí)報(bào)告_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

OpenGL編程實(shí)習(xí)報(bào)告班級(jí):學(xué)號(hào):姓名:專業(yè):攝影測(cè)量與遙感指導(dǎo)老師:實(shí)習(xí)目的:了解OPENGL繪圖原理;熟悉OPENGL的編程步驟;掌握在OPENGL中繪圖。實(shí)現(xiàn)在VC++6.0環(huán)境下在OPENGL中繪圖,繪制一個(gè)圓形或正方形;實(shí)現(xiàn)這個(gè)三維物體的變換。實(shí)習(xí)原理:OpenGL的基本工作流程為:OpenGL程序的基本結(jié)構(gòu)為定義窗口、清理窗口、繪制物體、結(jié)束運(yùn)行。其基本操作有:描述圖元、繪制圖元、OpenGL變換。在Windows下用GDI作圖必須通過(guò)設(shè)備上下文(DeviceContext簡(jiǎn)寫DC)調(diào)用相應(yīng)的函數(shù);用OpenGL作圖也是類似,OpenGL函數(shù)是通過(guò)"渲染上下文"(RenderingContext簡(jiǎn)寫RC)完成三維圖形的繪制。Windows下的窗口和設(shè)備上下文支持"位圖格式"(PIXELFORMAT)屬性,和RC有著位圖結(jié)構(gòu)上的一致。只要在創(chuàng)建RC時(shí)與一個(gè)DC建立聯(lián)系(RC也只能通過(guò)已經(jīng)建立了位圖格式的DC來(lái)創(chuàng)建),OpenGL的函數(shù)就可以通過(guò)RC對(duì)應(yīng)的DC畫到相應(yīng)的顯示設(shè)備上。實(shí)習(xí)步驟:首先創(chuàng)建工程。用AppWizard產(chǎn)生一個(gè)MFC單文檔(SDI)的EXE文件。選中三維控制(3DControls),其余保持默認(rèn)值即可。將此工程所需的OpenGL文件和庫(kù)加入到工程中。在工程菜單中,選擇"Build"下的"Settings"項(xiàng)。單擊"Link"標(biāo)簽,選擇"General"目錄,在Object/LibraryModules的編輯框中輸入"OpenGL32.libglu32.libglaux.lib",選擇"OK"結(jié)束。然后打開(kāi)文件"stdafx.h",將語(yǔ)句#include<gl\gl.h>和#include<gl\glu.h>插入到文件中。設(shè)置顯示設(shè)備DC的位圖格式(PIXELFORMAT)屬性。通過(guò)填充一個(gè)PIXELFORMATDESCRIPTOR的結(jié)構(gòu)來(lái)完成(關(guān)于PIXELFORMATDESCRIPTOR中各項(xiàng)數(shù)據(jù)的意義,請(qǐng)參照VC的幫助信息),該結(jié)構(gòu)決定了OpenGL作圖的物理設(shè)備的屬性,比如該結(jié)構(gòu)中的數(shù)據(jù)項(xiàng)dwFlags中PFD_DOUBLEBUFFER位如果沒(méi)有設(shè)置(置1),通過(guò)該設(shè)備的DC上作圖的OpenGL命令就不可能使用雙緩沖來(lái)做動(dòng)畫。有一些位圖格式(PIXELFORMAT)是DC支持的,而有一些DC就不支持了。所以程序必須先用ChoosePixelFormat來(lái)選擇DC所支持的與指定位圖格式最接近的位圖格式,然后用SetPixelFormat設(shè)置DC的位圖格式。利用剛才的設(shè)備DC建立渲染上下文RC(wglCreateContext),使得RC與DC建立聯(lián)系(wglMakeCurrent)。調(diào)用OpenGL函數(shù)作圖。(1)定義一個(gè)窗口:auxInitDisplayMode(AUX_SINGLE|AUX_RGBA);auxInitPosition(0,0,500,400);auxInitWindow("CreateYourOwnProgram");(2)清理窗口:glClearColor(0.0,0.0,0.0,0.0);glClearDepth(0.0);glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);(3)繪制物體:(包括和構(gòu)造幾何圖元)定義頂點(diǎn):在OpenGL中,所有的幾何物體最終都由有一定順序的頂點(diǎn)集來(lái)描述。在實(shí)際應(yīng)用中,通常用一組相關(guān)的頂點(diǎn)序列以一定的方式組織起來(lái)定義某個(gè)幾何圖元,而不采用單獨(dú)定義多個(gè)頂點(diǎn)來(lái)構(gòu)造幾何圖元。允許在glBegin()與glEnd()之間調(diào)用的OpenGL命令為:glVertex*();glColor*();glIndex();glNormal();glEvalCoord*();glCallList(),glCallLists();glTexCoord();glEdgeFlag();glMaterial();設(shè)置圖元的顏色、大小、線段、線型、多邊形的繪制和填充(4)設(shè)置變換方式。有幾何變換、正射投影等。(5)結(jié)束運(yùn)行。6、作圖完畢以后,先通過(guò)置當(dāng)前線程的RC為NULL(::wglMakeCurrent(NULL,NULL);),斷開(kāi)當(dāng)前線程和該渲染上下文的聯(lián)系,由此斷開(kāi)與DC的聯(lián)系。在后面刪除RC的時(shí)候要先判斷以下RC句柄的有效性(if(m_hrc)::wglDeleteContext(m_hrc);)。再根據(jù)情況釋放(ReleaseDC)或者刪

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論