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

正文內容

3d飛行訓練系統(tǒng)的設計與實現(xiàn)_畢業(yè)論文-在線瀏覽

2025-08-04 22:35本頁面
  

【正文】 機平臺及設備上的數(shù)千優(yōu)秀應用程序。在包含 CAD、內容創(chuàng)作、能源、娛樂、游戲開發(fā)、制造業(yè)、制藥業(yè)及虛擬現(xiàn)實等行業(yè)領域中, OpenGL? 幫助程序員實現(xiàn)在 PC、工作站、超級計算機等硬件設備上的高性能、極具沖擊力的高視覺表現(xiàn)力圖形處理軟件的開發(fā)。 IRIS GL 是一個工業(yè)標準的 3D 圖形軟件接口,功能雖然強大但是移植性不好,于是 SGI公司便在 IRIS GL的基礎上開發(fā)了 OpenGL。雖然DirectX 在家用市場全面領先,但在專業(yè)高端繪圖領域, OpenGL 是不能被取代的主角。其中, Open Inventor 應用最為廣 泛。 OpenGL 的發(fā)展一直處于一種較為遲緩的態(tài)勢,每次版本的提高新增的技術很少,大多只是對其中部分做出修改和完善。 1995年 OpenGL 的 ,該版本比 ,并加入了一些新的功能。 OpenGL “ OpenGL Shading Language”,該語言是“ OpenGL ”的底核,用于著色對象、頂點著色以及片斷著色技術的擴展功能。 1995年 OpenGL 的 ,該版本較 ,并加入了一些新的功能。 1997年, Windows 95下 3D 游戲的大量涌現(xiàn),游戲開發(fā)公司迫切需要一個功能強大、兼容性好的3D 圖形接口,而當時微軟公司自 己的 3D 圖形接口 DirectX 。微軟公司最終在 Windows 95的 OSR2版和后來的 Windows 版本中加入了對OpenGL 的支持。 20xx年的 7月 28日, SGI 和 ARB 公布了 OpenGL 。 OpenGL :頂點 Buffer Object、 Shadow 功能、隱蔽查詢、非乘方紋理等。 OpenGL Shading Language、新的 shader 擴展特性以及論文) 5 其他多項增強特性。 OpenGL API 開發(fā)代號為 Longs Peak,和以往一樣, OpenGL 臺的 3D 圖形接口標準,在 Shader 語言盛行的今天, shader 語言: GLSL ,可以充分發(fā)揮當前可編程圖形硬件的潛能。 20xx年 3月又公布了升級版新規(guī)范 OpenGL ,也是這套跨平臺免費 API 有史以來的第九次更新。寬泛地講, OpenGL API 模型體系進行了簡化, 可大幅提高軟件開發(fā)效率。該版本仍然延續(xù)了 OpenGL 發(fā)展的方向讓圖形程序開發(fā)者能在多種操作系統(tǒng)和平臺下更好的利用新的 GPU 功能。除 OpenGL 之外, Khronos 還將其開發(fā)的其它標準進行了協(xié)調改進,以求可以在更廣泛的領域提供強大的圖形功能和計算生態(tài)系統(tǒng),這些標準包括用于并行計 算的 OpenCL、用于移動 3D 圖形開發(fā)的 OpenGL ES 和用于網(wǎng)絡 3D 開發(fā)的 WebGL。 OpenGL 的渲染管道 大部分 OpenGL 的實現(xiàn)都有一個的相類似的操作順序,一系列處理階段稱為 OpenGL 渲染管道。 下面的圖表顯示了一條福特工廠裝配流水線的過程,這就是 OpenGL 處理數(shù)據(jù)的過程。在將最后的像素數(shù)據(jù)寫到幀緩存前,兩種類型的數(shù)據(jù)都要經過最后相同的步驟(光柵化和碎片操作 )。 所有數(shù)據(jù),無論是幾何描述或像素,都要被保存在一個顯示列表中以備用。一旦顯示列表被執(zhí)行,保留數(shù)據(jù)將從顯示列表中發(fā)送出去,就像在立即模式下被發(fā)送一樣。量化曲線和曲面可以用控制點和多項式函數(shù)(稱為基礎函數(shù))來初始描述。這個方法是多項式映射,它能夠從控制點產生曲面法線、材質坐標、顏色、空間坐標值。一些頂點數(shù)據(jù)(例如空間坐標)是用 4x4的浮點矩陣轉換來的。 假如使用了更高級的屬性,這個步驟甚至更加復雜。假如光照效果開啟,光照效果將使用轉換過的頂點、曲面法線、光源位置、材質屬性、其他光源的信息進行計算,產生一個顏色值。點裁剪只是簡單的忽略或刪除該點;線或多邊形裁剪將會增加一些附加的點,當然這依賴于怎么裁剪。然后是視點和景深( z 坐標)處理。根據(jù)多邊形模式,一個多邊形有可能被畫成點或線。 作 在幾何數(shù)據(jù)通過 OpenGL 渲染管道的過程中,像素數(shù)據(jù)走的另外一條不同的路徑。然后數(shù)據(jù)將被縮放、偏離,和被像素表處理。 假如像素數(shù)據(jù)是用幀緩存中讀取的,像素轉換操作(縮放、偏離、映射、 clamping)將被執(zhí)行。 這兒有一些特殊的像素拷貝操作,用于一個幀緩存中拷貝數(shù)據(jù)到另外一個幀緩存或紋理內存。 一個 OpenGL 程序也許希望能夠將圖像貼到幾何物體上去,使它看起來更加真實。 一些 OpenGL 實現(xiàn)也許有專用的方法用于加速紋理貼圖的性能。假如這個內存是存在的,紋理對象將優(yōu)先使用這種有限的且非常有用的資源。每一個片斷塊對應一個幀緩存中的像素。每一個片斷塊的顏色和景深值都被賦值。 MFC (Microsoft Foundation Class Library) 中的各種類結合起來構成了一個應用程序框架,它的目的就是讓程序員在此基礎上來建立 Windows 下的應用程序,這是一種相對 SDK 來說更為簡單的方法。 Microsoft Visual C++提供了相應的工具來完成這個工作: AppWizard 可以用來生成初步的框架文件(代碼和資源等);資源編輯器用于幫助直觀地設計用戶接口;ClassWizard 用來協(xié)助添加代碼到框架文件;最后編譯,則通過類庫實現(xiàn)了應用程序特定的邏輯。因為總體上, MFC 框架定義了應用程序的輪廓,并提供了用戶接口的標準實現(xiàn)方法,程序員所要做的就是通過預定義的接口把具體應用程序特有的東西填入這個輪廓。 封裝 構成 MFC 框架的是 MFC 類庫。這些類或者封裝了 Win32 應用程序編程接口,或者封裝了應用程序的概念,或者封裝了 OLE 特性,或者封裝了 ODBC 和 DAO 數(shù)據(jù)訪問的功能,等等,分述如下。例如: class CWnd 是一個 C++ window object,它把 Windows window(HWND)和 Windows window 有關的 API 函數(shù)封裝在 C++ window object 的成員函數(shù)內,后者的成員變量 m_hWnd 就是前者的窗口句柄。 MFC 把許多類似的處理封裝起來,替程序員完成這些工作。文檔是用戶操作的數(shù)據(jù)對象,視圖是數(shù)據(jù)操作的窗口,用戶通過它處理、查看數(shù)據(jù)。 MFC 的 OLE 類封裝了 OLE API 大量的復雜工作,這些類提供了實現(xiàn) OLE 的更高級接口。 繼承 首先, MFC 抽象出眾多類的共同特性,設計出一些基類作為實現(xiàn)其他類的基礎。 CObject 是 MFC 的根類,絕大多數(shù) MFC 類是其派生的,包括CCmdTarget。所有從 CObject 派生的類都將具備或者可以具備 CObject 所擁有的特性。 MFC 中,任何可以處理消息的類都從 CCmdTarget 派生。這些對象包括以下種類:窗口對象,基類是 CWnd;應用程序對象,基類是 CwinThread;文檔對象 ,基類是 Cdocument,等等。 虛擬函數(shù)和動態(tài)約束 論文) 8 MFC 以“ C++”為基礎,自然支持虛擬函數(shù)和動態(tài)約束。例如, CWnd 封裝 Windows 窗口對象時,每一條 Windows 消息對應一個成員函數(shù),這些成員函數(shù)為派生類所繼承。于是, MFC建立了消息映射機制,以一種富有效率、便于使用的手段解決消息處理函數(shù)的動態(tài)約束問題。程序員繼承基類的同時,把自己實現(xiàn)的虛擬函數(shù)和消息處理函數(shù)嵌入 MFC 的編程框架。本書將充分的展示 MFC 調用虛擬函數(shù)和消息處理函數(shù)的內幕,讓讀者對 MFC的編程接口有清晰的理解。這樣封裝的結果對程序員來說,是一套開發(fā)模板(或者說模式)。例如, SDI 應用程序的模板, MDI 應用程序的模板,規(guī)則 DLL 應用程序的模板,擴展 DLL 應用程序的模板, OLE/ACTIVEX 應用程序的模板,等等。典型的 MDI 應用程序的構成將在下一節(jié)具體討論。例如,為了實現(xiàn)消息映射機制,MFC 編程框架 必須要保證首先得到消息,然后按既定的方法進行處理。雖然,這些內部處理對程序員來說是透明的,但是,懂得和理解 MFC 內部機制有助于寫出功能靈活而強大的程序。同時, MFC 支持對底層 API 的直接調用。框架或者由其本身處理事件,不依賴程序員的代碼;或者調用程序員的代碼來處理應用程序特定的事件。例如,繼承時,應用程序特定的事件由程序員的派生類來處理,不感興趣的由基類處理。 應用程序構成 用 AppWizard 產生一個 MDI 工 程 t(無 OLE 等支持), AppWizard 創(chuàng)建了一系列文件,構成了一個應用程序框架。 構成應用程序對象 下圖解釋了該應用程序的結構,箭頭表示信息流向。主框架窗口包含了視窗口、工具條和狀態(tài)欄。 ( 1)應用程序 應用程序類派生于 CWinApp。 ( 2)邊框窗口 類 如果是 SDI 應用程序,從 CFrameWnd 類派生邊框窗口類,邊框窗口的客戶子窗口 (MDIClient)直接包含視窗口;如果是 MDI 應用程序,從 CMDIFrameWnd 類派生邊框窗口類,邊框窗口的客戶子窗口 (MDIClient)直接包含文檔邊框窗口。 邊框窗口用來管理文檔邊框窗口、視窗口、工具條、菜單、加速鍵等,協(xié)調半模式狀態(tài)(如上下文的幫助 (SHIFT+F1 模式 )和打印預覽)。 ( 4)文檔 類 文檔類從 CDocument 類派生,用來管理數(shù)據(jù),數(shù)據(jù)的變化、存取都是通過文檔實現(xiàn)的。 ( 5)視 類 視類從 CView 或它的派生類派生。 ( 6)文檔模板 類 文檔模板類一般不需要派生。 應用程序通過文檔模板類對象來管理上述對象(應用程序對象、文檔對象、主 邊框窗口對象、論文) 10 文檔邊框窗口對象、視對象)的創(chuàng)建。 圖所示的類都是從 CObject 類派生出來的;所有處理消息的類都是從 CCmdTarget 類派生的。文檔框架窗口從 CMdiChildWnd 派生,文檔框架窗口包含視 ,視從 CView 或其派生類派生。下面,從文件的角度來考察 AppWizard 生成了源碼和作用。 表 AppWizard 所生成的頭文件 頭文件 用途 標準 AFX 頭文件 resource.h 定義了各種資源 ID include定義了從 CWinApp 派生的應用程序對象 CTApp childfrm.h 定義了從 CMDIChildWnd 派生的文檔框架窗口對象 CTChildFrame 定義了從 CMDIFrameWnd 派生的框架窗口對象 CMainFrame 定義了從 CDocument 派生的文檔對象 CTDoc 論文) 11 定義了從 CView 派生的視圖對象 CTView 表 AppWizard 所生成的實現(xiàn)文件 從表 中的包含關系一欄可以看出: CTApp 的實現(xiàn)用到所有的用戶定義對象,包含了他們的定義; CView 的實現(xiàn)用到 CTdoc;其他對象的實現(xiàn)只涉及自己的定義; 當然,如果增加其他操作,引用其他對象,則要包含相應的類的定義文件。選擇 File|New 菜單項,新建一個基于對話框的項目文件 MyDlgOpenGL; ② 修改對話框模板。選擇 View|ClassWizard 菜單項 ,打開MFC對話框,在 Add Class之中選擇 New,以便添加一個新類 COpenGL,且該類的基類選擇 generic CWnd;最后利用 MFC ClassWizard 為 COpenGL 類添加消息 WM_CREATE, WM_PAINT 的映射。 include include include include include include 定義 CTApp 的實現(xiàn),并定義 CTApp 類型的全局變量 theApp。 ②將 , , , 拷貝到 Microsoft Visual Studio/VC98/Include/GL 目錄中中。 3.初始化 OpenGL:(設置像素格式、創(chuàng)建 OpenGL dc、 rc,設置 OpenGL 視口變換), ①設置像素格式:為 CMyTestView 類添加成員函數(shù) BOOL bSetupPixelFormat(void),用于與OpenGL 相關的設置 /*定 義 像 素 存 儲 格 式 */ PIXELFORMATDESCRIPTOR pfd = { sizeof(PIXELFORMATDESCRIPTOR), // pfd 結構的大小 1, // 版本號 PFD_DRAW_TO_WINDOW | // 支持在窗口中繪圖 PFD_SUPPORT_OPENGL | // 支持 OpenGL PFD_TYPE_RGBA, // RGBA 顏色模式 24, // 24 位顏色深度 0, 0, 0, 0, 0, 0, // 忽略顏色位 0, // 沒有非透明度緩存 0, // 忽略移位位 0,
點擊復制文檔內容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1