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

正文內(nèi)容

基于opengl的飛機(jī)虛擬場(chǎng)景漫游模擬畢業(yè)論文(完整版)

  

【正文】 偉大的飛躍為 OpenGL 的應(yīng)用 提供了廣闊的前景 和市場(chǎng) 。第一部分是主要包括緒論,描述 系統(tǒng) 背景 、 發(fā)展?fàn)顩r及研究意義。第二部分主要是介紹了本 系統(tǒng) 的開(kāi)發(fā)平臺(tái)以及 Visual C++中 OpenGL 繪圖機(jī)制 ,最后講述了如何搭建 OpenGL 應(yīng)用程序框架。 在國(guó)內(nèi), OpenGL 的發(fā)展越來(lái)越成熟,在多媒體、醫(yī)學(xué)、工業(yè)等各個(gè)領(lǐng)域中的應(yīng)用也越來(lái)越廣泛,在國(guó) 內(nèi) 只要在百度里面打出“ OpenGL 招聘”,就會(huì)有很多的招聘信息。因?yàn)橐谱饕徊烤哂猩砼R其境的電影就要求圖像畫(huà)面在處理后要具有非常好的立體感,而美國(guó)的電影在這方面已經(jīng)有了很大的成就。 Visual C++ 是一個(gè)非常強(qiáng)大的編程工具,它是 Windows 環(huán)境下的應(yīng)用開(kāi)發(fā)系統(tǒng)之一,可用來(lái)編程 C、 C++等語(yǔ)言。因?yàn)閱挝臋n模板會(huì)自動(dòng)生成一個(gè)帶菜單、工具條、狀態(tài)欄還有一個(gè) view 類(lèi) , 比較適合文本處理,它特定東西比較多,很多可以根據(jù)自己需要改改就行,對(duì)話(huà)框比較自由,所以應(yīng)用起來(lái)相對(duì)來(lái)說(shuō)會(huì)比較簡(jiǎn)單。 其中 plane 是從 CWinApp 派生出來(lái)的,在 plane 的構(gòu)造函數(shù)中定義了一個(gè)全局變量: CPlaneApp theApp,函數(shù)的執(zhí)行順序是先執(zhí)行全局變量,全局變量調(diào)用構(gòu)造函數(shù),然后才進(jìn)入 WinMain 函數(shù)。 } ( 5) 修改 CPlaneView 類(lèi)里的 OnSize()函數(shù), OnSize()函數(shù)主要作用是當(dāng)窗口大小改變時(shí),如放大、縮小窗口,會(huì)相應(yīng)地改變投影方式和視口大小,使場(chǎng)景里的物體正確地顯示在窗口中。 if ( m_pDC ) { delete m_pDC。 “ 天空球 ” 法是由一個(gè)球體,在它的表面貼上一張?zhí)炜占y理圖組成的。本課題中主要對(duì)三維場(chǎng)景中的地面和天空進(jìn)行了紋理渲染,同時(shí)利用 3D 圖形的旋轉(zhuǎn)、平移技術(shù)實(shí)現(xiàn)物體隨觀察方向的改變而轉(zhuǎn)動(dòng)的效果。 紋理映射技術(shù)原理是通過(guò)把紋理空間坐標(biāo) ? ?ts, 與物體空間坐標(biāo)的每一點(diǎn) ? ?zyx , 建立關(guān)聯(lián),實(shí)現(xiàn)把二維的紋理圖像映射到三維物體的表面。 最后 調(diào)用glBindTexture()函數(shù)實(shí)現(xiàn) 把 生成的紋理的名字綁定到對(duì)應(yīng)的目標(biāo)紋理上。 貼紋理的時(shí)候要明確要映射的物體和紋理直接的相對(duì)關(guān)系,如同現(xiàn)實(shí)生活中往手機(jī)上貼膜一樣,必須把紋理的四個(gè)角正確的映射到物體的對(duì)應(yīng)的角上。 矢量圖不管是對(duì)其放大縮小都不會(huì)失真,而 像素圖 在放大縮小時(shí)有可能會(huì)失真。 霧化特效在場(chǎng)景渲染中起到很大的作用,在三維可視化中應(yīng)用非常廣泛。當(dāng) paname為 GL_FOG_MODE 時(shí),表示使用哪種霧方程式,參數(shù) param 可以為 GL_LINEAE(線(xiàn)性 )、 GL_EXP(指數(shù) )和GL_EXP2(指數(shù)平方 )。//此處設(shè)置 霧的顏色 、//和系統(tǒng)的背景色一致,效果比較明顯 fogMode = GL_LINEAR。//禁用霧 } } 光照 光照的概述 虛擬場(chǎng)景要模擬現(xiàn)實(shí) , 有一個(gè)很重要的地方就是要考慮光照。盡管 OpenGL 可能支持更多的光源,但為了運(yùn)行速度的快速一般只使用這 8個(gè)光源。//設(shè)置并啟用光照 1和 散射光 上面的 LightPosition 是一個(gè)四維數(shù)組,數(shù)組里的前 3 個(gè)參數(shù)分別 為光源位置的 X、 Y、福州大學(xué)陽(yáng)光學(xué)院本科生畢業(yè)設(shè)計(jì)(論文) 10 開(kāi)始讀入文件頭信息MS 3 D 文件 ?處理主塊信息讀取實(shí)體信息讀取材質(zhì) 、 關(guān)鍵幀數(shù)據(jù) 、 多邊形等信息形成顯示列表結(jié)束YNZ 分量, 第四個(gè)參數(shù) 有兩個(gè)取值,當(dāng)此參數(shù)取值為 1 時(shí),光源的位置就是前 3 個(gè)參數(shù)所指定的位置,而當(dāng)取值為 1時(shí),則表示光源位于距離三維場(chǎng)景無(wú)限遠(yuǎn)的地方,前 3個(gè)參數(shù)不起作用。函數(shù) gluNewQuadric()和 gluDeleteQuadric()用來(lái)創(chuàng)建和刪除這些二次曲面。 glRotatef(90,1,0,0)。 接下來(lái)按逆時(shí)針順序把 XZ 平面分成 64個(gè)網(wǎng)格同時(shí)運(yùn)用 紋理映射 把地形貼圖映射到網(wǎng)格上 ,為了正確的把紋理映射到 網(wǎng)格 ,必須 調(diào)用 glTexCoord2f()函數(shù)將 紋理圖的四個(gè)角正確的映射到 網(wǎng)格的四個(gè)點(diǎn) 上 , 即構(gòu)成了平面地圖 [13]。xXQUARE。 //綁定紋理, tree 值可通過(guò)按鍵 M改變,從而切換地圖 glBindTexture( GL_TEXTURE_2D, texture[tree] )。 glTexCoord2d( , )。 福州大學(xué)陽(yáng)光學(xué)院本科生畢業(yè)設(shè)計(jì)(論文) 14 } 三維場(chǎng)景漫游的實(shí)現(xiàn) 雙緩沖技術(shù)概述 OpenGL 能夠?qū)崿F(xiàn)動(dòng)畫(huà)制作的一個(gè)重要技術(shù)就是運(yùn)用了雙緩沖技術(shù),猶如放映電影一樣,膠片一片一片快速的放映,就能給人感覺(jué)畫(huà)面會(huì)動(dòng),雙緩存也是同樣的原理。二是采用移動(dòng)眼坐標(biāo)的方式,使用 gluLookAt()函數(shù),只要設(shè)置成跟隨角色移動(dòng)去移動(dòng)旋轉(zhuǎn)就可以實(shí)現(xiàn)漫游效果。 //初始角度設(shè)置為 0 則初始面向 X 軸//正方向,設(shè)置為 90Z 軸 正 方向 // 視點(diǎn)位置 =。 //漫游過(guò)程中,視點(diǎn)位置的調(diào)整 =+dx。 //飛機(jī)在 y 軸移動(dòng)的距離, 為每次前進(jìn)的步長(zhǎng),通過(guò) sin 和 cos 函數(shù)實(shí)現(xiàn)沿著現(xiàn)有角度方向前進(jìn)。 //每按一次 左 鍵 ,旋轉(zhuǎn) Ioan 度 ?? } if(nChar==VK_RIGHT) //按下右鍵 { //以下是飛機(jī)機(jī)身旋轉(zhuǎn)控制 planeLeftRightAngle += planeAngleSpeed。 //視點(diǎn)位置降低 +=。 //飛機(jī)繞 x軸旋轉(zhuǎn)planeUpDownAngle 度 ?? } 上 面 代 碼 中 使 用 了 glRotatef 函 數(shù) , 其 原 型 為:glRotatef(Angle,Xvector,Yvector,Zvector)它的作用是 讓對(duì)象繞某個(gè)軸旋轉(zhuǎn)。 圖 54 霧化 效果圖 ( 5) 按下鍵盤(pán)的“ M”鍵,實(shí)現(xiàn)地圖的切換,如圖,切換成了沙漠,草地地形,分別如 圖 5 56所示。光照結(jié)合陰影能更直接的提高場(chǎng)景的真實(shí)性,在今后的研究中,有必要對(duì)陰影的實(shí)現(xiàn)做進(jìn)一步的研究。 return auxDIBImageLoad(Filename)。 pImagedata != NULL ) { glGenTextures(1, amp。 TextureImage[0]sizeX 是紋理的寬度。//告訴 OpenGL此紋理是一個(gè) 2D紋理 ( GL_TEXTURE_2D )。 //釋放 TextureImage[0] 圖像結(jié)構(gòu)以保證所有的內(nèi)存都能釋放 } return Texture。 glGenTextures(1, amp。texture[1])。 glBindTexture(GL_TEXTURE_2D, texture[2])。 glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR)。他教給我的不僅是專(zhuān)業(yè)知識(shí),還有認(rèn)真嚴(yán)謹(jǐn)?shù)墓ぷ髯黠L(fēng),使我獲益匪淺。同時(shí),我也特別感謝大學(xué)生涯中所有教過(guò)我的所有老師,傳授給我們知識(shí)和為人的方法。 gluBuild2DMipmaps(GL_TEXTURE_2D, 3, TextureImage[0]sizeX, TextureImage[0]sizeY, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[0]data)。 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[0])。 我們使用它來(lái)跟蹤是否能夠載入位圖以及能否創(chuàng)建紋理。通常這兩種情況下我都采用 GL_LINEAR 。參數(shù)零是邊框的值,一般就是“ 0”。 //告訴 OpenGL我們想生成一個(gè)紋理名字 glBindTexture(GL_TEXTURE_2D, Texture)。 } return NULL。而應(yīng)用物理建模就可以更直觀的模擬碰撞反應(yīng)以及萬(wàn)有引力的模擬等,使漫游效果更加出色。 測(cè)試結(jié)果 用戶(hù)通過(guò)鍵盤(pán)操作可以靈活地對(duì)場(chǎng)景進(jìn)行漫游和觀察,并可以通過(guò)鍵盤(pán)命令來(lái)改變場(chǎng)景環(huán)境,基本達(dá)到了預(yù)期的目標(biāo)。 基于 OpenGL 的飛機(jī)虛擬場(chǎng)景漫游模擬 19 5 系統(tǒng)測(cè)試 測(cè)試環(huán)境 ( 1)硬件: 要求 計(jì)算機(jī)內(nèi)存達(dá)到 1GM以上,分辨率 800*600 及以上。 //每次 加上 飛機(jī)機(jī)身旋轉(zhuǎn)速度 if(planeUpDownAngle = ) //對(duì) 飛機(jī)機(jī)身上下旋轉(zhuǎn)角度 控制 { planeUpDownAngle = 。} LRRotateFlag = true。 +=dz。 =+dz。 =。 該函數(shù)定義了視點(diǎn)的矩陣,其中 eyex、 eyey、 eyez 為眼睛的位置, centerx、 centery、centerz 為 觀測(cè)物的 位置, upx、 upy、 upz 指定 向上向量的方向 , 如圖 42所示 [15]。計(jì)算機(jī)的計(jì)算速度非常的快,可以在人眼察覺(jué)不出的時(shí)間里讓顯示圖像不斷地連續(xù)變化,這樣就實(shí)現(xiàn)了動(dòng)畫(huà)效果。 glTexCoord2d( , )。zZQUARE1。 //Z 軸取正負(fù) 32個(gè)坐標(biāo)點(diǎn) 基于 OpenGL 的飛機(jī)虛擬場(chǎng)景漫游模擬 13 xp=xp*SIZES 。 double xp,zp。 gluSphere(skyqiu,1000,32,32)。 gluSphere() 函數(shù)原型為 : void gluSpere(GLUquadricObj* obj,GLdouble radius,GLint slices,GLint stacks)。 MS3D 模型載入 MilkShape3D 是一款有名的建模工具,而 MS3D 是 其特有的 模型格式 。在本課題中的光照功能相關(guān)代碼如下: glEnable(GL_LIGHTING)。同樣,在虛擬場(chǎng)景中物體如果只有本身色彩而沒(méi)有光照的話(huà),就會(huì)給人晦暗,不真實(shí)的感覺(jué)。 glFogfv (GL_FOG_COLOR, fogColor)。F39。合理使用霧化,可 以很好的表現(xiàn)出視點(diǎn)到物體的距離感,實(shí)現(xiàn)逐漸變模糊的物體 [9]。而矢量圖的運(yùn)算量和數(shù)據(jù)量都比像素圖大很多。此函數(shù)有兩個(gè)參數(shù),第一個(gè)參數(shù)是 x坐標(biāo),第二個(gè)參數(shù)是 y坐標(biāo)。 OpenGL 在圖像顯示的時(shí)候,有可能顯示的圖像比原始的紋理大,也有可能比原始的紋理小,這種情況在紋理映射給多邊形的物體時(shí)很常見(jiàn),因此,要控制濾波方式,使其局部縮小或放大。 例如可以把巖石的圖像應(yīng)用到一個(gè)立方體上,這樣這個(gè)立方體看起來(lái)就像是一個(gè)打磨過(guò)的立方體的巖石了。計(jì)算機(jī)一般模擬的是自然界中的濃霧、云煙、虛化的場(chǎng)景。 “ 天空球 ” 相對(duì)于 “ 天空盒 ”來(lái)說(shuō) 要簡(jiǎn)單得多,因?yàn)樗恍枰桓奔y理圖,并且計(jì)算機(jī)會(huì)自動(dòng)計(jì)算紋理坐標(biāo)。 在本系統(tǒng)中 我主要完成了下面介紹的幾個(gè)場(chǎng)景建模。 if (cy==0) { cy=1。 ( 3) 在 Stdfax(預(yù)編譯頭文件)里添加 OpenGL 的頭文件: include gl/、 include gl/、 include gl/ ,并添加自定義連接庫(kù): pragma ment( lib, ) 、 pragma ment( lib, ) 、 pragma ment( lib, )、 pragma ment( lib, )。 OpenGL 通過(guò)“渲染上下文”即 RC(RenderingContext)完成對(duì)三維圖形的繪制。 在 Windows應(yīng)用程序中, Visual C++是公認(rèn)的效率最高,最強(qiáng)大的工具
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1