【正文】
這套跨平臺(tái)免費(fèi) API 有史以來(lái)的第九次更新。并針對(duì)于噴泉模擬效果上進(jìn)行了 改進(jìn)。自然景物與規(guī)則的幾何物體不同,它們的表面往往包含有豐富的細(xì)節(jié)或具有隨機(jī)變化的形狀,這些細(xì)節(jié)與隨機(jī)變化的形狀很難用傳統(tǒng)的解析曲面來(lái)描述。 噴泉是這些景物中具有代表性的動(dòng)態(tài)景物,在風(fēng)景園林、學(xué)校、廣場(chǎng)、生活小區(qū)、公園等工作及休閑娛樂場(chǎng)所皆可看到各種不同的噴泉 [3]。計(jì)算機(jī)圖形學(xué)是運(yùn)用計(jì)算機(jī) 產(chǎn)生、存儲(chǔ)、構(gòu)建物體模型的 一門 學(xué) 科 [1]。 關(guān)鍵詞: 粒子系統(tǒng);噴泉模擬;虛擬現(xiàn)實(shí); 0penGL 2 Abstract The natural scenery in visual simulation system is simulated, the puter games, 3d animation medium have extensive use of. The natural scenery of simulation has been puter hot research topic. However, most of the natural scenery have random change shape, such as flame, spray, rivers, waterfalls, snow, smoke, etc. It is difficult to use conventional modeling method and simulation technology to describe the natural scenery, so the simulation of natural scenery is a challenging task. Based on the analysis and summary fountain at home and abroad on the basis of simulation, realtime and lifelike, particle system was proposed. Combined with OpenGL and physical principle, using MFC programming simulation of particle trajectories fountain, bined acceleration motion to simplify particle movement, and the realization of particle texture fusion technology. Experiment results show that the method is simple, the fountain of simulation results meet requirement of realtime and lifelike. Key words: particle systems, Fountain simulation, Virtual reality, 0penGL 3 1 緒 論 計(jì)算機(jī)圖形學(xué) (Computer Graphics,簡(jiǎn)稱 CG)是一種使用數(shù)學(xué)算法將二維或三維圖形轉(zhuǎn)化為計(jì)算機(jī)顯示器柵格形式的科學(xué)。隨機(jī)模型是處理這類問題的一種先進(jìn)的方法,在隨機(jī)模型中首推 Fournier的分形算法和 Reeves的粒子系統(tǒng)方法 [2]。我國(guó)的徐迎慶 [9]等人從水力學(xué)方程出發(fā),提出了一個(gè)基于物理模型的模擬流水和波浪的方法;陳前華 [10]等人基于物理建模方法與隱式曲面造型技術(shù),實(shí)現(xiàn)了滴水漣漪的模擬。 本論文的技術(shù)路線 本文主要根據(jù)國(guó)內(nèi)外模擬噴泉的研究現(xiàn)狀進(jìn)行了分析和借鑒。 20xx 年 8 月, 版本發(fā)布 ~OpenGL 標(biāo)準(zhǔn)的主要制訂者并非原來(lái)的 SGI,而是逐漸在 ARB 中占據(jù)主動(dòng)地位的 3Dlabs。 基于頂點(diǎn)的操作 對(duì)于頂點(diǎn)數(shù)據(jù),接下來(lái)的一個(gè)步驟就是 基于頂點(diǎn)的操作 ,就是把頂點(diǎn)變換為圖元。接著,這些數(shù)據(jù)被縮放、偏移,并根據(jù)一副像素圖進(jìn)行處理。 片斷操作 在數(shù)據(jù)實(shí)際存儲(chǔ)到幀緩沖區(qū)之前, 將要執(zhí)行一系列的操作。 Visual C++提供了相應(yīng)的工具 來(lái)完成這個(gè)工作: AppWizard 可以用來(lái)生成初步的框架文件(代碼和資源等);資源編輯器用于直觀地設(shè)計(jì)用戶界面; ClassWizard 用來(lái)協(xié)助添加代碼到框架文件;最后進(jìn)行編譯,則通過類庫(kù)實(shí)現(xiàn)了應(yīng)用程序特定的邏輯。 ( 3)對(duì) COM/OLE 特性的封裝 OLE 建立在 COM 模型之上,由于支持 OLE 的應(yīng)用程序必須實(shí)現(xiàn)一系列的接口( Interface),因而相當(dāng)繁瑣。如果這些函數(shù)都設(shè)計(jì)成虛擬函數(shù),由于數(shù)量太多,實(shí)現(xiàn)起來(lái)不現(xiàn)實(shí)。 總之, MFC 封裝了 Win32 API, OLE API, ODBC API 等底層函數(shù)的功能,并提供更高一層的接口,簡(jiǎn)化了 Windows 編程。 如果要支持工具條、狀態(tài)欄,則派生的邊框窗口類還要添加 CToolBar 和 CStatusBar 類型的成員變量,以及在一個(gè) OnCreate 消息處理函數(shù)中初始化這兩個(gè)控制窗口。表 1 列出了 AppWizard 所生成的頭文件,表2 列出了了 AppWizard 所生成的實(shí)現(xiàn)文件及其對(duì)頭文件的包含關(guān)系。 return FALSE。 void vect_mult(struct point *A, struct point *B, struct point *C)。 // 粒子的 X 和 Z 方向增加值 char type。在視點(diǎn)坐標(biāo)系中,進(jìn)行背面剔除、視域四棱錐裁剪。粒子在存活期間始終是按一定的方式運(yùn)動(dòng)的。 1.外觀屬性 外觀屬性包括粒子的形狀、尺寸和顏色,它們共同決定了系統(tǒng)對(duì)不規(guī)則模糊物體模擬的逼真程度。 P 為位置, V 為速度, A 為加速度,粒子的狀態(tài)變化可用公式 (22)、公式 (23)計(jì)算: V(t+△ t)=V(t)+A(t)△ t (22) P(t+△ t)=P(t)+V(t)△ t (23) 19 粒子的消亡 粒子產(chǎn)生后,經(jīng)過一定的時(shí)間間隔,由于某種原因從系統(tǒng)中被刪除的過程稱為粒子的消亡過程。 其次,假設(shè)繪制時(shí)只考慮不規(guī)則模糊物體本身,即粒子系統(tǒng)中的各個(gè)粒子與虛擬環(huán)境中的其它規(guī) 則物體不會(huì)出現(xiàn)交錯(cuò)、融合與碰撞檢測(cè)計(jì)算,因此只對(duì)系統(tǒng)中的粒子進(jìn)行繪制。 4.生命屬性 新粒子生成時(shí)都被系統(tǒng)賦予了生命周期 (Lifetime),生命周期是用來(lái)計(jì)算粒子在系統(tǒng)中的存活時(shí)間,隨著時(shí)間的推移,不斷有粒子消亡同時(shí)不斷有新粒子生成,生命周期 (粒子壽命 )用粒子在系統(tǒng)中存活的幀數(shù)來(lái)表示。 粒子的產(chǎn)生通常由隨機(jī)函數(shù)來(lái)控制, 在 Reeves 的粒子系統(tǒng)中定義了兩種方法 [2]: 第一種是平均粒子數(shù)衡量法。這里包含兩個(gè)意思,一是粒子系統(tǒng)中各粒子不與場(chǎng)景中任何其它物體相交,二是粒子之間不存在相交關(guān)系,并且粒子是不可穿透的??偟膩?lái)說(shuō),造型技術(shù)、真實(shí)感圖形繪制技術(shù)與人機(jī)交互技術(shù)構(gòu)成了計(jì)算機(jī)圖形學(xué)的主要研究?jī)?nèi)容。 float alpha, ttx, ttz。 gluPerspective(45,ratio,1,1000)。 int pixelformat。 構(gòu)成應(yīng)用程序的對(duì)象之間的關(guān)系 圖 3 應(yīng)用程序的對(duì)象之間的關(guān)系 用圖的形式可直觀地表示所涉及的 MFC 類的繼承或者派生關(guān)系,如圖所示意。 圖 2 MDI 應(yīng)用程序的構(gòu)成 從 CWinApp、 CDocument、 CView、 CMDIFrameWnd、 CMDIChildWnd 類對(duì)應(yīng)地派生出 CTApp、 CTDoc、CTView、 CMainFrame、 CChildFrame 五個(gè)類,這五個(gè)類的實(shí)例分別是應(yīng)用程序?qū)ο?、文檔對(duì)象、視對(duì)象、主框架窗口對(duì)象和文檔邊框窗口對(duì)象。 這些模板都采用了以文檔 視為中心的思想,每一個(gè)模板都 包含一組特定的類。 針對(duì)每種不同的對(duì)象, MFC 都設(shè)計(jì)了一組類 對(duì)這些對(duì)象進(jìn)行封裝,每一組類都有一個(gè)基類,從基類派生出眾多更具體的類。 ( 1)對(duì) Win32 應(yīng)用程序編程接口的封裝 用一個(gè) C++ Object 來(lái)包裝一個(gè) Windows Object。該類庫(kù)提供一組通用的可重用的類庫(kù)供開發(fā)人員使用。這種資源可能是專用的,高性能的紋理內(nèi)存。接下來(lái)所進(jìn)行的是視口 (viewport)和深度 (z 坐標(biāo) )操作。 圖 1 OpenGL渲染管道 下面我們更為詳細(xì)的介紹 OpenGL 渲染管道 的一些關(guān)鍵階段。 第五章: 總結(jié)本文方法并給出進(jìn)一步的研究展望 。 1955年 Reeves W. T和 Blau[12]發(fā)展了粒子系統(tǒng)他們用“ Vo1ume Filling”基本單元法生成隨時(shí)間改變形狀但又基本保持不變的實(shí)體,如隨風(fēng)飄動(dòng)的花草樹葉; Stam和 Flume[13]用“元球”來(lái)描述火焰等氣態(tài)現(xiàn)象,并給出了一種扭曲“元球”的算法,使模擬的氣態(tài)景物的外形更加不規(guī)則,從而更加真實(shí); Karl Sims[14]研究了粒子的動(dòng)畫及繪制算法,他利用粒子系統(tǒng)的并行特點(diǎn),提出了一個(gè)并行的粒子繪制系統(tǒng),該系統(tǒng)能繪制不同形狀、大小、顏色、透明度的粒子; wong[15]使用粒子系統(tǒng)實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的瀑布模型,在該模型中設(shè)置了瀑布下落過程中的障礙 (如巖石等 ); Fournier A[16]等在研究海浪模型中利用粒子系統(tǒng)模擬了浪花,并提出了浪花所產(chǎn)生的條件; Tengsee Loke[11]等人基 于粒子系統(tǒng),使用牛頓運(yùn)動(dòng)定律來(lái)描述煙火,對(duì)煙火的運(yùn)動(dòng)、顏色、形狀、亮度、尾跡等進(jìn)行仿真,取得了很好的效果。因此虛擬噴泉技術(shù)在一定程度上會(huì)得到廣泛的應(yīng)用,利用粒子系統(tǒng)實(shí)現(xiàn)噴泉的三維效果在虛擬現(xiàn)實(shí)領(lǐng)域具有一定的研究意義。 隨著計(jì)算機(jī)科技的不斷發(fā)展進(jìn)步,計(jì)算機(jī)圖形學(xué)己 成為一個(gè)具有巨大潛力的新興產(chǎn)業(yè),對(duì)于人們的學(xué)習(xí)、生活以及學(xué)習(xí)領(lǐng)域都產(chǎn)生了重大的影響和推動(dòng)作用。 1 畢業(yè)論文 論文題目 : 基于粒子系統(tǒng)的噴泉 模擬 系 別: 計(jì)算機(jī)系 專業(yè)年級(jí): 學(xué) 號(hào): 姓 名: 指導(dǎo)教師、職稱: 年 月 日 I Fountain simulation based on particle system College: Specialty and Grade: Number: Name: Advisor: Submitted time: II 目錄 摘 要 .......................................................................................................................................1 Abstract.......................................................................................................................................2 1 緒 論 .......................................................................................................................................3 研究背景、意義 ..............................................................................................................3 國(guó)內(nèi)外研究現(xiàn)狀 ..............................................................................................................4 本論文的技術(shù)路線 ...........................................................................................................5 2 基于 OpenGL+ MFC 的建?;A(chǔ) ...................................................................................................6 OpenGL 概述 .............................................................................................................