freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于opengl的飛機(jī)虛擬場(chǎng)景漫游模擬畢業(yè)論文-免費(fèi)閱讀

2024-12-10 00:54 上一頁面

下一頁面
  

【正文】 再此,我向我的導(dǎo)師謝伙生表示最誠(chéng)摯的感謝。 glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_NEAREST)。 glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR)。 glBindTexture(GL_TEXTURE_2D, texture[1])。texture[0])。 } int Texture::LoadTextures() //現(xiàn)在載入位圖,并將其轉(zhuǎn)換為紋理 { /* 設(shè)置一個(gè)叫做 Status 的變量。 /* OpenGL在顯示圖像時(shí),當(dāng)它比放大得原始的紋理 ( GL_TEXTURE_MAG_FILTER )或縮小得比原始得紋理小 ( GL_TEXTURE_MIN_FILTER )時(shí) OpenGL采用的濾波方式。 TextureImage[0]sizey 是紋理的高度。Texture)。 //讀取圖象數(shù)據(jù)并將 其返回。 ( 2)在系統(tǒng)中沒有應(yīng)用物理模擬和碰撞檢測(cè)技術(shù),事實(shí)上飛機(jī)在三維場(chǎng)景漫游時(shí)有可能與場(chǎng)景中的物體發(fā)生碰撞,而應(yīng)用了碰撞檢測(cè)技術(shù)就能繞過障礙找到更合理的飛行路徑。 基于 OpenGL 的飛機(jī)虛擬場(chǎng)景漫游模擬 21 圖 55 沙漠地形 圖 圖 56 草地地形 圖 ( 6)按下鍵盤的“ A”鍵,實(shí)現(xiàn)背景音樂的播放。 Angle 指定 對(duì)象轉(zhuǎn)過的角度 , Xvector , Yvector 和 Zvector 三個(gè)參數(shù)則共同決定旋轉(zhuǎn)軸的方向 。 //飛機(jī)位置調(diào)高 ?? } if(nChar==VK_DOWN) //按下下鍵 { //以下是飛機(jī)機(jī)身旋轉(zhuǎn)控制 planeUpDownAngle += planeAngleSpeed。 //左右旋轉(zhuǎn)角度遞加 基于 OpenGL 的飛機(jī)虛擬場(chǎng)景漫游模擬 17 //對(duì)機(jī)身左右旋轉(zhuǎn)角度進(jìn)行控制,以防出現(xiàn)飛機(jī)倒置過來的情況 if(planeLeftRightAngle = ) { planeLeftRightAngle = 。 +=dx。 =+dy。 =+4。 gluLooAt()函數(shù)的原型: void gluLookAt(GLdouble eyex,GLdouble eyey,GLdouble eyez,GLdouble lookx,GLdouble looky,GLdouble lookz,GLdouble upx,GLdouble upy,GLdouble upz)。它分配了前 臺(tái)緩存和后臺(tái)緩存,在前臺(tái)緩存進(jìn)行圖像顯示的同時(shí),后臺(tái)緩存會(huì)繪制下一幅圖像,繪制結(jié)束后會(huì)將后臺(tái)緩存里的內(nèi)容顯示。//紋理的左上 //繪制 ? ?1, ?zx 處的頂點(diǎn) glVertex3f(Terrain[x][z+1].x,Terrain[x][z+1].y,Terrain[x][z+1].z)。 for(z=0。x++) { xp=(double)x((double)ZQUARE /2)。 Y Z 32 X X 32 0 32 32 Z 圖 41 地形平面分析 圖 相關(guān) 代碼如下所示 : define XQUARE 64 //64個(gè)格子 define ZQUARE 64 define SIZES 256 //格子大小 256 void CPlaneView::InitTerrain(void) { int x,z。 //繞 x軸旋轉(zhuǎn) 90 度角 glColor4f(1,1,1,1)。其主要主要過程是,首先要通過函數(shù) GLUquadricObj 創(chuàng)建一 個(gè)新的二次曲面對(duì)象;然后調(diào)用 glEnable 及 glBindTexture 函數(shù)實(shí)現(xiàn)開啟和綁定紋理;接著通過 gluSphere()函數(shù)創(chuàng)建球體的模型。 為了保證光線能夠照在飛機(jī)的上,我將光源的位置朝著觀察者,一般 將顯示器的屏幕所處的位置看做 Z軸的 點(diǎn), 因此 在 Z軸上的位移定為 。而使用光源必須設(shè)置光源的位置 [10]。如同真實(shí)生活中一樣,物體因?yàn)橛泄庹斩鴺?gòu)成了我們五彩斑斕的世界。 //采用、線性變化的霧化效果 glFogi (GL_FOG_MODE, fogMode)。 相關(guān)代碼如下: //開啟霧化 if(nChar==70) // 通過 ascii 碼判斷 按下 鍵 盤的 39。 使用霧化特效可以直接加深場(chǎng)景的距離感和縱深感,增強(qiáng)了場(chǎng)景的真實(shí)性 ,且可以提高繪制速度,減少計(jì)算量。不過像素圖的運(yùn)算量和數(shù)據(jù)量一般都比較小且不會(huì)因圖像復(fù)雜增加。在 OpenGL 里,幾何圖形上的坐標(biāo)與紋理之間的映射是通過函數(shù) glTexCoord*()函數(shù)來實(shí)現(xiàn)的。 ( 2) 控制濾波方式。能夠把二維的紋理圖像映射到三維物體的表面, 從而呈現(xiàn)出真實(shí)視覺效果 [6]。 自然界里的霧是不定的、多變的,這樣的霧是很難計(jì)算模擬的。此紋理圖上最好有帶云彩的圖像,這樣會(huì)使場(chǎng)景模擬帶有更高的真實(shí)感。 } ?? } 基于 OpenGL 的飛機(jī)虛擬場(chǎng)景漫游模擬 5 3 課題實(shí)現(xiàn)的關(guān)鍵技術(shù) 場(chǎng)景建模 場(chǎng)景建模能夠直接展示出場(chǎng)景的三維特征,也是影響著三維可視化系統(tǒng)功能的實(shí)現(xiàn)的關(guān)鍵。 相關(guān)代碼如下: void CPlaneView::OnSize(UINT nType, int cx, int cy) { CView::OnSize(nType, cx, cy)。 ( 2) 將 OpenGL 所需的頭文件放在 Visual C++ 安裝目錄下的 VC98 文件夾下的 GL目錄中,并將 、 、 、 OpenGL32dll 這些動(dòng)態(tài)鏈接庫文件放入 Windows 系統(tǒng)的 system32 文件夾目錄下。 OpenGL繪圖的機(jī)制 在 Windows 環(huán)境下使用圖形設(shè)備接口 GDI(GraphicDeviceInterface)作圖要通過設(shè)備上下文 (DeviceContext)調(diào)用相對(duì)應(yīng)的函數(shù) ,用 OpenGL 作圖也是如此 。其集成開發(fā)環(huán)境與 Win32 緊密相連,具有強(qiáng)大的調(diào)試功能,在編譯錯(cuò)誤的時(shí)候會(huì)為程序員提示錯(cuò)誤的信息所在的位置, 在開發(fā)復(fù)雜的軟件時(shí)候能夠有效地提供強(qiáng)大的排錯(cuò) 方法 。他們制作了如 《侏羅紀(jì)公園》、《玩具總動(dòng)員》、《泰坦尼克號(hào)》 等這些大名鼎鼎票房過億的 電影 。由此可見在國(guó)內(nèi)已經(jīng)有相當(dāng)多的公司都在使用 OpenGL 作為一種開發(fā)工具。第三部分介紹了課題實(shí)現(xiàn)的關(guān)鍵技術(shù),主要包括場(chǎng)景建模、場(chǎng)景渲染 等 。 全文總共分為五大部分。同時(shí)計(jì)算機(jī)圖形學(xué)也不例外,從比較簡(jiǎn)單的平面圖形到 3D 空間立體圖形的一個(gè)轉(zhuǎn)變,無疑是圖形學(xué)史上的一個(gè)飛躍。而且在國(guó)外很多 OpenGL 的產(chǎn)品已經(jīng)是滿目琳瑯了。本次我的畢業(yè)設(shè)計(jì)目的是通過 對(duì)三維場(chǎng)景的建模技術(shù),外部模型的導(dǎo)入及漫游技術(shù) 的研究達(dá)到對(duì)當(dāng)今虛擬現(xiàn)實(shí)技術(shù)有一個(gè)大概的認(rèn)識(shí),并學(xué)會(huì) 運(yùn) 用 OpenGL 結(jié)合 Visual C++ 環(huán)境 實(shí)現(xiàn) 的飛機(jī)飛行漫游模擬。在 MFC 里面有很多的模板,如 MDI 應(yīng)用程序模板、 SDI 應(yīng)用程序模板、規(guī)則和擴(kuò)展 DLL 應(yīng)用程序的模板等等。因?yàn)?OpenGL 是一個(gè)與操作系統(tǒng)平臺(tái)無關(guān)的圖形庫,所以不同的操作系統(tǒng) 需建不同的 框架。 ?? //建立渲染上下文 m_hRC = ::wglCreateContext(m_pDCGetSafeHdc())。 ?? ::wglDeleteContext( m_hRC)。 天空的建模方式有很多種,而基本的做法有兩種,一種是 “ 天空盒 ” 法,另一種是 “ 天空球 ” 法。本系統(tǒng) 主要運(yùn)用了紋理映射、霧化 、 光照處理等渲染技術(shù)來模擬三維場(chǎng)景的真實(shí)性。二是用像素塊來表示對(duì)象,但這兩種方法都有一定的局限,幾何流水線的系統(tǒng)在模擬很多自然現(xiàn)象(如草地、云彩、火焰)時(shí)處理多邊形的速度仍然難以滿足需求。 調(diào)用 glGenTextures()函數(shù)創(chuàng)建紋理對(duì)象,使用一個(gè)正整數(shù)作為紋理對(duì)象的編號(hào)。要注意的是 OpenGL 以前的版本有對(duì)紋理進(jìn)行限制,要求紋理的大小必須是 2的冪,雖然新版本的 OpenGL 取消了這個(gè)限制,但由于某些 PC 機(jī)顯卡的驅(qū)動(dòng)程序附帶的 OpenGL 不一定能支持新版本的 OpenGL,所以最好使用 2 的冪大小的紋理,且最大不能超過 1024*1024。 位圖 計(jì)算機(jī)通常用像素圖和矢量圖來保存圖像,像素圖是把 圖像縱橫分為若干的行和列,行和列之間組成的每一小塊分塊稱之為像素,因?yàn)樗4媪嗣恳恍K的像素的顏色,所以它可以保存整個(gè)圖像。在使用霧化時(shí) , OpenGL會(huì)把開發(fā)者指定的霧的顏色與完成了其他顏色計(jì)算的幾何圖形進(jìn)行混合。如果為了節(jié)約內(nèi)存,實(shí)現(xiàn)更快不過精確度稍低的 霧可以調(diào)用 glHint(GL_FOG_HINT,GL_FASTEST)。 glEnable(GL_FOG)。 // 霧氣的開 始位置 glFogf(GL_FOG_END,)。鏡面光不同于散射光,環(huán)境光 它雖然也是按特定的方向發(fā)射但是其反射的角度太銳利一致,如同現(xiàn)實(shí)生活中的聚光燈,根據(jù)這個(gè)原理我在課題中加了光照的功能。// 散射光參數(shù) , R,G,B 取//最高值 1,顯示最強(qiáng)亮度 glLightfv(GL_LIGHT1, GL_AMBIENT, LightAmbient)。 圖 31 讀取 MS3D 文件的流程 圖 基于 OpenGL 的飛機(jī)虛擬場(chǎng)景漫游模擬 11 4 漫游系統(tǒng)實(shí)現(xiàn) 天空的渲染和繪制 天空主要通過運(yùn)用了“天空球 ”來實(shí)現(xiàn),在場(chǎng)景中構(gòu)建一個(gè)球體,并往此球體上面貼張帶有天空的 bmp 格式的圖像,此圖像帶有云彩圖案,可以增強(qiáng)真實(shí)感 [12]。//開啟紋理 glPushMatrix()。系統(tǒng)采用的是在 XZ 平面上繪制 64*64 的四邊形的格子,結(jié)合紋理映射,往四邊形上貼一幅帶有草地地圖的圖像。 //Z軸取正負(fù) 32 個(gè)坐標(biāo)點(diǎn) zp=zp*SIZES 。 } } } void CPlaneView::DrawTerrain(void) { register int x,z。//繪制四邊形方式 glTexCoord2d( , )。 glEnd()。通過 if語句,判斷鍵盤按鍵的 ASCII 碼即可 知道用戶往鍵盤上面按了什么按鍵,并在 if 語句里面改變飛機(jī)旋轉(zhuǎn)的角度。 =10。// 為飛機(jī)的 傾 角, Ioan 為//旋轉(zhuǎn)角度 dy=6。 //飛機(jī)在 x 軸移動(dòng)的距離, 為每次前進(jìn)的步長(zhǎng),通過 sin 和 cos 函數(shù)實(shí)現(xiàn)沿著現(xiàn)有角度方向前進(jìn)。} LRRotateFlag = true。} UDRotateFlag = true。 //飛機(jī)位置重置 } ?? } //繪制飛機(jī),并設(shè)置飛機(jī)繞 x, z軸旋轉(zhuǎn)的角度 void CPlaneView::DrawPlane(void) { ?? glRotatef(planeLeftRightAngle,)。 圖 52 系統(tǒng)界面 圖 福州大學(xué)陽光學(xué)院本科生畢業(yè)設(shè)計(jì)(論文) 20 ( 3)按下鍵盤的“ S”鍵,開啟天空盒,如圖 53 所示。 不過 由于時(shí)間和本人水平有限,只是對(duì) OpenGL 虛擬場(chǎng)景漫游設(shè)計(jì)做了一些 初步
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1