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

正文內(nèi)容

基于opengl的飛機虛擬場景漫游模擬畢業(yè)論文-免費閱讀

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

下一頁面
  

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