【正文】
) // 鏈接時(shí)查找 pragma ment (lib, ) // 鏈接時(shí)查找 pragma ment (lib, ) // 鏈接時(shí)查找 注冊(cè)窗口 RegisterWindowClass(Application* application) ( 1)定義 窗口類(lèi) : WNDCLASSEX windowClass。另外, OpenGL 封裝了有關(guān)基本硬件的信息,使得開(kāi)發(fā)者無(wú)須針對(duì)具體的硬件特征進(jìn)行設(shè)計(jì) 。 OpenGL 具有良好的結(jié)構(gòu)、直觀的設(shè)計(jì)和邏輯命令。由此, OpenGL 應(yīng)用程序可以適應(yīng)開(kāi)發(fā)人員選擇的各種目標(biāo)平臺(tái)。 ( 6) 可適應(yīng)性。對(duì)于硬件特性的升級(jí)可以體現(xiàn)在OpenGL 擴(kuò)展機(jī)制以及 OpenGL API 中,一個(gè)成功的 OpenGL 擴(kuò)展會(huì)被融入在未來(lái)的 OpenGL 版本之中。 OpenGL 是低級(jí)的圖形 API,它具有充分的可擴(kuò)展性。利用 OpenGL 擴(kuò)展, OpenGL 實(shí)現(xiàn)者( OpenGL Implementer)也可以添加新的處理算法。但是,硬件是不斷變化的, OpenGL 如何保持可移植性呢? OpenGL 擴(kuò)展( OpenGL Extension)正是為這一目的而設(shè)計(jì)的。 ( 4) 可移植性和可靠性。 ( 3) 穩(wěn)定性。 OpenGL ARB 作為獨(dú)立的聯(lián)合委員會(huì),制定規(guī)范文檔 (Specification)。這個(gè)特點(diǎn)使得程序開(kāi)發(fā)者在廣播、 CAD/CAM/CAE、娛樂(lè)、醫(yī)學(xué)圖像和虛擬現(xiàn)實(shí)等領(lǐng)域中創(chuàng)造和顯示出難以想象的 2D 和 3D 圖形。 ( 1) 圖形質(zhì)量好 、性能高。 因此 OpenGL 的圖形操作函數(shù)十分基本、靈活。用戶(hù)必須從點(diǎn)、線、面等最基本的圖形單元開(kāi)始構(gòu)造自己的三維模型。 OpenGL 支持網(wǎng)絡(luò),在網(wǎng)絡(luò)系統(tǒng)中用戶(hù)可以在不同的圖形終端上運(yùn)行程序顯示圖形。 OpenGL 是一個(gè)與硬件圖形發(fā)生器的軟件接口,它包括了 100 多個(gè)圖形操作函數(shù),開(kāi)發(fā)者可以利用這些函數(shù)來(lái)構(gòu)造景物模型、進(jìn)行三維圖形交互軟件的開(kāi)發(fā)。 OpenGL 作為一個(gè)性能優(yōu)越的圖形應(yīng)用程序設(shè)計(jì)接口,適用于廣泛的計(jì)算機(jī)環(huán)境。 基于 opengl 的 3D 天體運(yùn)動(dòng) 模型 設(shè)計(jì)方案 學(xué) 生: ____??? ___ 學(xué) 號(hào): ************ 指導(dǎo)老師: ___??? ___ 一、背景簡(jiǎn)介 設(shè)計(jì) 概述 本 3D 建模設(shè)計(jì) 運(yùn)用 Win32 程序設(shè)計(jì)的基本原理,基于 OpenGL 接口函數(shù),以Microsoft Visual Studio 2021 為開(kāi)發(fā)工具,以 C++語(yǔ)言為開(kāi)發(fā)語(yǔ)言,設(shè)計(jì)了一個(gè)星空背景下的 太陽(yáng) — 地球 — 月球公轉(zhuǎn)自轉(zhuǎn)運(yùn)動(dòng) 模型, 模擬了太陽(yáng)的光照效果,并實(shí) 現(xiàn)了可以加速和減速地球和月球的自轉(zhuǎn)、公轉(zhuǎn) 速度,而且還可以調(diào)整視圖的遠(yuǎn)近和方位 , 方便各方面的觀察 。 OpenGL 的基本特點(diǎn) OpenGL 即開(kāi)放圖形庫(kù)( Open Graphics Library) ,是一個(gè)三維的計(jì)算機(jī)圖形和模型庫(kù)。從個(gè)人計(jì)算機(jī)到工作站和超級(jí)計(jì)算機(jī), OpenGL 都能實(shí)現(xiàn)高性能的三維圖形功能。正如上一章所述, OpenGL 是一個(gè)高性能的圖形開(kāi)發(fā)軟件包。 OpenGL 作為一個(gè)與硬件獨(dú)立的圖形接口,它不提供與硬件密切相關(guān)的設(shè)備操作函數(shù),同時(shí),它也不提供描述類(lèi)似于飛機(jī)、汽車(chē)、分子形狀等復(fù)雜形體的圖形操作函數(shù)。當(dāng)然,像OpenInventor那樣更高一級(jí)的基于 OpenGL的三維圖形建模開(kāi)發(fā)軟件包將提供方便的工具。 它具有如下特點(diǎn)。 無(wú)論是三維動(dòng)畫(huà)、 CAD,還是視覺(jué)模擬、可視化計(jì)算等,都利用了 OpenGL 高圖形質(zhì)量、高性能的特點(diǎn)。 ( 2) 行業(yè)標(biāo)準(zhǔn)。隨著業(yè)內(nèi)廠商的支持, OpenGL 成為唯一真正開(kāi)放的、獨(dú)立于供應(yīng)商的、跨平臺(tái)的標(biāo)準(zhǔn)。 OpenGL 能夠在各種平臺(tái)上執(zhí)行,而且 OpenGL 高版本兼容低版本,保證了已經(jīng)開(kāi)發(fā)的 應(yīng)用程序不會(huì)失效。 利用 OpenGL技術(shù)開(kāi)發(fā)的應(yīng)用圖形軟件與硬件無(wú)關(guān),只要硬件支持 OpenGL API標(biāo)準(zhǔn)就行了,也就是說(shuō), OpenGL 應(yīng)用程序可以運(yùn)行在支持 OpenGL API 標(biāo)準(zhǔn)的任何硬件上。廠商只要提供 OpenGL 擴(kuò)展,就可以輕松實(shí)現(xiàn)硬件特有的功能。 ( 5) 可擴(kuò)展性。許多 OpenGL 開(kāi)發(fā)商在OpenGL 核心技術(shù)規(guī)范的基礎(chǔ)上,增強(qiáng)了許多圖形繪制功能,從而使 OpenGL 能緊跟最新硬件發(fā)展和計(jì)算機(jī)圖形繪制算法的發(fā)展。通過(guò)這種方法,程序開(kāi)發(fā)者和硬件廠商能夠在正常的產(chǎn)品周期中組合出新的產(chǎn)品。 基于 OpenGL API 的圖形應(yīng)用程序可以運(yùn)行在許多系統(tǒng)上,包括各種用戶(hù) 電子設(shè)備、 PC、工作站以及超級(jí)計(jì)算機(jī)。 ( 7) 易用性。與其他圖形程序包相比,OpenGL 只有很少的代碼,因此執(zhí)行速度快。 二、概要設(shè)計(jì) 程序流程 開(kāi) 始W i n M a i n ( ) 應(yīng)用 程 序 入 口注 冊(cè) 窗 口 類(lèi)R e g i s t e r W i n d o w c l a s s ( )創(chuàng) 建 o p e n g l 顯 示C r e a t e W i n d o w G L ( )初 始 化 o p e n g l 繪 制 程序 i n i t i a l i z e ( )循 環(huán) 更 新 顯 示并 等 待 消 息消 息 是 否 為 退 出 ?否