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

正文內容

基于opengl的三維飛行器程序設計與仿真_畢業(yè)論文(文件)

2025-07-31 14:25 上一頁面

下一頁面
 

【正文】 ..............................................................................35 光照的模型 .......................................................................................................35 場景中的霧 ..................................................................................................................37 基于 OpenGL 三維飛行器程序設計與仿真 霧的屬性 ...........................................................................................................37 霧的生成 ...........................................................................................................38 本系統(tǒng)建模流程 ..........................................................................................................38 建模細節(jié)及其改進 ......................................................................................................40 ..........................................................................................................................43 致 謝 .........................................................................................................................................44 參考文獻 ..................................................................................................................................45 西安科技大學畢業(yè)論文 5 1. 緒論 前言 科學計算可視化是 2 0 世紀 80 年代后期隨著計算機圖形學應用的拓廣而發(fā)展起來的一個新的研究分支 , 受其推動 , 各種信息的可視化成為 90 年代許多學科領域的研究前緣。 目前 , OpenGL 在虛擬現(xiàn)實領域是功能較強 , 最具發(fā)展前途的實現(xiàn)工具。 OpenGL是 SGI公司開發(fā)的與硬件環(huán)境和操作系統(tǒng)獨立的 API,它提供了建模、坐標變換、著色、光照、平滑等二維和 三維圖形功能以及紋理映射、曲線等高級功能,并且能夠生成三維場景,繪制三維物體 OpenGL良好的交互性和代碼運行的高效性使它已經成為三維動畫和虛擬現(xiàn)實場景開發(fā)的重要工具。它有意識的只提供底層的繪制程序功能,這就使得程序員有了更多的控制權和靈活性。通過應用程序編程接口,可以設置狀態(tài)機的各個狀態(tài),例如當前的顏色,光照以及混合模式等狀態(tài)。但是圖形設備接口是為一般的應用程序而提供的,因此不能滿足游戲所必須的速度要求。在 Visual C+ + 編程環(huán)境下 , 能方便地調用這些函數(shù)對三維圖形進行仿真。近年來,隨著計算機的普及和科學技術的迅速發(fā)展,天氣,衛(wèi)星以及地震勘測領域中的數(shù)據量越來越大,可視化技術就成為科學研究中必不可少的手段。 然后再調用仿真數(shù)據結果庫的數(shù)據對模型進行實時繪制,驅動飛行器在空地作戰(zhàn)環(huán)境運動 。 基于 OpenGL 三維飛行器程序設計與仿真 2. 程序功能概述 這一章節(jié)主要介紹飛行器飛行的具體場景的構建以及在程序中它們是如何生成的,還有就是主要介紹程序各個部分的功能以及場景中與飛行器相關的其他模型的構建過程。光照和霧可以調用 OpenGL中的相關函數(shù)進行設計。此外,霧化設置也會產生問題,如果霧的設置靠近觀察點,則天空的顏色會變淡甚至沒有。 西安科技大學畢業(yè)論文 9 ( 2) 飛行器 該程序的實現(xiàn)過程中,飛機的構成不是使用當下 3D游戲中流行的使用建好后的3DMAX 模型載入到內存中,進而重新繪制飛機模型,而是由一些基本的三角形進行組合而成的,這種方法可能沒有利用直接載入 3DMAX模型的方法產生的效果好,但這里主要想利用 OpenGL繪圖中經常使用的一個東西,即就是顯示列表,主要就是想盡可能的從OpenGL的 角度出發(fā)來完成本次設計。同時還要修改工程 中的相關參數(shù) ,即將 _CONLOLE改為 _WINDOWS,在 link項,在對象、模塊欄的前面加上 OpenGL 函數(shù)庫的調用有效。 建立圖形操作描述表 OpenGL 作圖窗口必 須設置為 WM_CLIPSIBLINGS 和 WM_CLIPCHILDREN 風格。使用時先通過 wglCreateContext ( ) 函數(shù)創(chuàng)建一個 RC,然后調用 wglMakeCurrent ( ) 函數(shù)啟動它 , 就可在所定義的窗口內調用 OpenGL 函數(shù)繪制飛行器了。像素格式用 PIXELFORMATDESCRIPTOR 結構來表示 , 通過設置這一結構的成員值使 之支持 OpenGL。為了進行變換,基本就是用變換矩陣乘以想要變換的點,得到的結果 就是變換過的新的點,比如有一個點 P和變換矩陣 M,那么為了用變換矩陣 M來變換點 P,從而得到結西安科技大學畢業(yè)論文 11 果點 P’,應該像下面這樣做 : PMP *39。 定義了頂點以后,但在屏幕上顯示他們之前一共會發(fā)生 3中類型的變換:視圖變換,模型變換和投影變換。它用于確定場景的拍攝點。視圖變換允許把觀察點放在自己所希望的任何位置,并允許在任何方向上觀察場景。然后,根據最新修改的坐標系統(tǒng)進行其他所有的后續(xù)變換。場景或者物體的最終外觀很大程度上取決于模型變換的應用順序。裁剪平面是 3D空間的平面方程式, OpenGL用它來確定幾何圖形能否被觀察者所看到。這意味著不管物體有多遠,都仍然 按照相同的大小進行繪制,平面的出現(xiàn)屏幕上。透視投影的優(yōu)點是不必判斷直線將在什么地方交匯,也不必操心遠處的物體是如何變小的。通常,顏色緩沖區(qū)和窗口像素之間存在著一對一的對應關系。紋理可以是 2D, 3D, 4D紋理等,但我們文中使用的是 2D紋理,它通常是從圖像或者圖片文 件中載入的,文中使用的是從一幅 256*256的現(xiàn)成圖片中載入紋理數(shù)據,它是在程序運行是才生成紋理。草地,天空,飛行器都使用紋理貼圖來增加圖形的真實感。 // Check To See If The File Exists if (File) Does The File Exist? { fclose(File)。 在將紋理數(shù)據從 BMP文件中載入到內存之后,將其定義為一個 OpenGL紋理圖,調用OpenGL中的 glTexImage()函數(shù)可以實現(xiàn),在函數(shù)被調用之后,紋理數(shù)據就會被載入并做好被使用的準備,調用 glGenTexture()函數(shù)將一個名字賦給紋理對象,因為紋理對象是用來存儲數(shù)據的,使其隨時準備被使用。 最后當紋理對象被綁定到其數(shù)據上以后,可以調用 glBindTexture()函數(shù)來將此紋理設置為當前的紋理狀態(tài),這樣在繪制多邊形完成后,就可以調用相應的紋理來進行貼圖。在計算機 3D圖形處理技術中,也有類似我們眼睛的東西glulookAt(? )觀察函數(shù),如果這個觀察點在 OpenGL場景中的位置發(fā)生變化,我們在計算機屏幕上的圖像就發(fā)生了變化。 X 量的變化就像是我們在場景中橫向移動, Y 量的變化就像是我們的身體高度的變化, Z 量的變化就像是我們在場景中前后移動。 因為 glLookAt()函數(shù)在本文飛機的漫游過程中比較重要,所以下面利用圖示的方法介紹一下 gllookat()函數(shù)的工作過程: up Eye look Z X 圖 31 視點各向量示意圖 glLookAt()函數(shù)中的三個主要變量 (eye,look,up)就是像上面展示的那樣,當我們把西安科技大學畢業(yè)論文 17 eye,look,up三個參數(shù)傳遞給 glLookAt()函數(shù)的時候,函數(shù)可以自身算出新的坐標系,也就相當于將我們人的眼睛在場景中移到另一個位置,因此漫游的過程也就是視點的變化過程,也即坐標系不斷改變的過程。 顯示列表使用之前先要創(chuàng)建,這個可以使用 glGenList()函數(shù)來完成此項任務,然后將相關的命令放入相應的顯示列表。 屏幕顯示 在 OpenGL中,三維圖形最終要顯示在屏幕上,而屏幕是一個二維平面,在這個將三維圖形變成二維圖形時要經歷以下過程: 基于 OpenGL 三維飛行器程序設計與仿真 圖 32 頂點變換軌道 這中間涉及的一些知識將在上面已經詳細介紹,這里主要是了解計算機顯示三維場景的大致流程,其中主要涉及上述的三種變換:視圖變換,模型變換以及投影變換 透視分割 歸一化設備 坐標 視圖變換 窗 窗口坐標 ( x,y) 模型視圖矩陣 投影矩陣 剪裁坐標 定點坐標 (x,y,z,w) 眼坐標 西安科技大學畢業(yè)論文 19 4. 場景的構建 在本文中,對于飛行器的仿真,場景構建可謂是重中之重,構建出好的模型對于仿真的真實性以及實效性都有很大的幫助,場景的構建大的方面主要涉及飛機的構建,天空的構建,地面的生成,以及像光照,霧等效果的實現(xiàn),下面就依次來講述文中各個模型是 如何生成的。 (2)球形天空 在本文中,天空主要是繪制一個球,其他場景都包含在這個球內。在本文中,這個實現(xiàn)過程如下: gluSphere(quadratic,MAX*50,20,20)。 Gltexgeni(GL_t,GL_TEXTURE_GEN_MODE,GL_SPHERE_MAP); glEnable(GL_TEXTURE_GEN_S)。 此天空完成后的大體模型如下所示: 圖 41 場景中的天空 西安科技大學畢業(yè)論文 21 地面 地面的生成 地面模型的生成 有很多的方法,究其本質都是產生網格模型,網格模型都是由一些平面的塊組成的,每個塊都應用不同的紋理,這樣每個塊只有一個單獨的法向量,但擁有其自己的紋理坐標,所以,在地面的繪制過程中,每個塊的數(shù)據可以像類似下面這樣: 1)塊頂點的數(shù)量; 2)塊法向的索引; 3)頂點索引的列表; 4)紋理坐標索引的列表; 下面介紹幾種不同的經常使用的地形的構成方法: ( 1)高程地形 高程地形是指由高程柵格組成的地表或地形系統(tǒng)??梢杂蒙鲜龌叶葓D中的每一位的顏色值來指定每一個柵格的高度。 為 了 繪 制 地 形 圖 , 我 們 需 要 對 于 沿 z 軸 方 向 的 每 一 行 柵 格 值 使 用GL_TRIANGLE_ATRIP。完成后的基本圖形如下: 西安科技大學畢業(yè)論文 23 圖 44 高程地形的生成畫面 (2)網格法 網格法主要是利用 OpenGL中的基本劃線函數(shù)繪制類似棋盤格式的畫面,這個做法主要運用 OpenGL中的 glbegain()和 glend()函數(shù),其中 glbegain()函數(shù)中的參數(shù)選擇有許多種,在網格法中采用的是 GL_LINES,即劃線模式。 我們將在場景中定義一個高度,以此作為其中水的海平面,可以是使用一個 if語句進行判斷,假如某處的高度大
點擊復制文檔內容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1