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

正文內(nèi)容

基于粒子系統(tǒng)噴泉實(shí)現(xiàn)論文(完整版)

2024-12-25 16:50上一頁面

下一頁面
  

【正文】 計(jì)中,所產(chǎn)生的粒子是具有不同顏色,但無法貼上貼圖的單象素微粒,采用 D3DPT_POINTLISTofD3DPRIMITIVETYPE 繪制。 (3) 粒子池(彈匣) 粒子池中存儲(chǔ)了粒子系統(tǒng)可能用到的所有粒子,并且用棧 、 鏈表等數(shù)據(jù)結(jié)構(gòu)快速產(chǎn)生刪除粒子,它好比一個(gè)彈匣,里面放了所有備用的子彈,他比彈匣更強(qiáng)的是,發(fā)射完的子彈他還能找回來,下次繼續(xù)發(fā)射。 利用粒子池,我們無須頻繁申請和釋放內(nèi)存,可以有效的模擬粒子的產(chǎn)生和消亡過程 。 粒子本身越復(fù)雜,渲染同樣的效果需要的粒子數(shù)就越少。本系統(tǒng)是在 VS2020 中實(shí)現(xiàn)的,利用 OpenGL 編程模式 , 運(yùn)用 MFC 框架來實(shí)現(xiàn)的。噴泉粒子在轉(zhuǎn)化為頂點(diǎn)信息后,通過普通的渲染過程繪制到幀緩存中即可 。 聲明獲得視圖窗口距離的函數(shù); void GetViewDir ( void )。 void RotateZ ( GLfloat Angle )。 int m_NumOscillators。 void Reset()。 int GetWidth()。粒子的屬性包括:粒子當(dāng)前狀態(tài)、粒子當(dāng)前位置、粒子當(dāng)前生命值、粒子存在的時(shí)間、粒子當(dāng)前速度以及粒子運(yùn)動(dòng)方向。 i2。 // 粒子方向 // 開始位置的坐標(biāo) temppx = 0。 粒子的運(yùn)動(dòng) 粒子的活動(dòng)主要有 2 個(gè) —— 粒子的移動(dòng)( MoveParticles)和粒子的刪除( DeleteParticles) (1) 粒子移動(dòng)的 設(shè)計(jì)與 實(shí)現(xiàn) 噴泉的設(shè)計(jì)與實(shí)現(xiàn) 21 首先需要定義了一個(gè)指針 *tempp,通過下面的方式來計(jì)算粒子下個(gè)位置的坐標(biāo),以此來實(shí)現(xiàn)粒子的移動(dòng): Tempx+=temppxd。 for (j=0。 }else // 粒子位于地面 { temppy = (*(temppt*temppt/4))/2+。 代碼如下: //刪除粒子 void CMyFountainView::DeleteParticles() { struct particle *tempp, *temp1。 temppprevnext = temppnext。平面由平面上的特征點(diǎn) O 和法線方向 N 確定,在上述例子中,特征點(diǎn)設(shè)置為 P2 點(diǎn),法線方向設(shè)置為 Y 軸正方向。 圖 42 噴泉形狀圖示 噴泉的設(shè)計(jì)與實(shí)現(xiàn) 24 噴泉粒子初始化 首先設(shè)定粒子的初始屬性,包括粒子的初始速度、初始位置以及顏色。 與無能量損失的反彈運(yùn)動(dòng)不同,在該模型中有兩個(gè)重要參數(shù),摩擦系數(shù) μ 和反彈系數(shù) ε。 系統(tǒng) 實(shí)現(xiàn) 水柱生成 水柱的生成實(shí)際上就是許多粒子不斷活動(dòng)的結(jié)果。 具體實(shí)現(xiàn)代碼如下: alpha = ((j*20+a)*PI)/180。upv, amp。由于本文采用的粒子是一個(gè)個(gè)很小的正方體,所以可以不用設(shè)置三維結(jié)構(gòu)圖,這樣就減輕了工作量。 glVertex3f((), (tempp), ())。 (4) 啟動(dòng)紋理映射 glEnable(GL_TEXTURE_2D)。 glVertex3f((), (tempp), ())。 glVertex3f((ttx+), (tempp), (ttz+))。紋理映射的關(guān)鍵是定義紋理、指定紋理在像素上的應(yīng)用方式及啟用紋理。 normalize(amp。 ttz = temppx*sin(alpha)+temppz*cos(alpha)。即產(chǎn)生新的噴泉粒子并初始化屬性 繪制噴泉粒子 更新噴泉粒子的速度 繪制噴泉粒子 Texture 數(shù)據(jù)轉(zhuǎn)為頂點(diǎn)數(shù)據(jù) 更新噴泉粒子的位置和其他屬性 噴泉的設(shè)計(jì)與實(shí)現(xiàn) 26 AddParticles()MoveParticles()DeleteParticles()的循環(huán) 。N)*N Vt=VVn ( 公式 42) V’=(1μ)VtεVn 噴泉繪制 粒子系統(tǒng)的產(chǎn)生、運(yùn)動(dòng)和消亡都確定之后,就可以進(jìn)行噴泉的繪制工作了。 然后設(shè)定粒子的初始顏色,由于是模擬噴泉水流,設(shè)定粒子顏色為白色。假想觀察者的視點(diǎn)位于屏幕正前方,以噴泉出水的管嘴的中心位置為 O,設(shè)置 X 軸正向沿從左至右的 方向, Y 軸正向沿從下至上的方向, Z 軸正向?yàn)閺睦镏镣獾姆较颉?free(tempp)。 for (j=0。 // 粒子淡化 } tempp = temppnext。 j++) { tempp = fn[j]。 Tempy+=(*(temppt* temppt/4))/2+。 temppz = 0。 if (fn[j]) fn[j]prev = tempp。(粒子存在與三維坐標(biāo)系) 存在時(shí)間: t=(設(shè)粒子運(yùn)動(dòng)的最高點(diǎn)為粒子虛擬產(chǎn)生時(shí)間) 當(dāng)前速度: v=(rand()%202000)/100000+1。 私有屬性中聲 明的是紋理圖片的長、寬及名稱 ; 噴泉的設(shè)計(jì)與實(shí)現(xiàn) 19 具體實(shí)現(xiàn)代碼詳見附錄 (5)。 void Update(float deltaTime)。 int m_NumIndices。 聲明向前移動(dòng)、向右移動(dòng)函數(shù); void MoveForwards ( GLfloat Distance )。 公有屬性設(shè)計(jì)有: 聲明構(gòu)造函數(shù) 用來初始化窗口位置,大小等屬性: CCamera()。 鍵盤操作說明如下: W, S: move camera forward/backward A, D: turn camera right/left R, F : move camera up/down X, Y: turn camera up/down C, V: strafe left/right Esc: Exit 噴泉的設(shè)計(jì)與實(shí)現(xiàn) 17 主框架的設(shè)計(jì)與實(shí)現(xiàn) (1) 窗口和視角變換設(shè)計(jì)與實(shí)現(xiàn) 視角變換需要窗口,那么就需要一個(gè)鏡頭來呈現(xiàn)出來各種變換效果。 Visual Studio 2020 提供了大量的控件 , 這些控件可用于設(shè)計(jì)界面和實(shí)現(xiàn)各種功能 ,減少了編程人員的工作量 , 也簡化了界面設(shè)計(jì)過程 , 從而有效的提高了應(yīng)用程序的運(yùn)行效率和可靠性。 本 文應(yīng)用了二維紋理,粒子系統(tǒng)基本原理 15 使用 Billboarding 和 alpha 通道技術(shù),使得噴泉模型在實(shí)際應(yīng)用中能滿足實(shí)時(shí)性要求并且更加逼真。而一個(gè)好的粒子系統(tǒng)必須具有 實(shí)時(shí)的效果,往往粒子數(shù)目越多,物體的真實(shí)程度就越高,同時(shí)帶來大量的計(jì)算,這樣,在相同的硬件條件下,就降低了實(shí)時(shí)性。如果每次產(chǎn)生一個(gè)粒子,我們都 要?jiǎng)?chuàng)建 一塊內(nèi)存來存儲(chǔ)這個(gè)粒子,每次粒子消亡我們都 要?jiǎng)h 掉 它 ,這種操作將產(chǎn)生大量的開銷,影響粒子系統(tǒng)的整體運(yùn)行速度。它的思想是:首先把一幅靜態(tài) 圖像 作為紋理映射到簡單的集合平面上,然后根據(jù)視點(diǎn)始終與該平面正交。 N) *N ( 公式 33) 其中 N 為反射面的方法向量。每個(gè)粒子可以具有一個(gè)生命期,如果某些粒子不應(yīng)刪除,則可以賦予他們無限長的生命期。另外,利用 3DS MAX 制作的煙火、浪花,其效果還不太理想,需要將粒子系統(tǒng)與其他方法想結(jié)合,開發(fā)出更新更好的算發(fā),這些都是今后的研究方向之一??傊?,粒子系統(tǒng)能夠創(chuàng)建各種動(dòng)畫效果。 Fournier ,提出了浪花的產(chǎn)生條 件—— 粒子運(yùn)動(dòng)速度和海流曲面?zhèn)鞑ニ俣戎g的差異要超過一定的條件,即粒子運(yùn)動(dòng)速度與海浪曲面?zhèn)鞑ニ俣戎g的差異要超過一定的閥值 [8],否則產(chǎn)生泡沫。另外,功能強(qiáng)大的圖形卡可以加快粒子幾何體在視口中的顯示速度。 粒子系統(tǒng)的簡介及國內(nèi)外研究現(xiàn)狀 (1) 粒子系統(tǒng)的簡介 粒子系統(tǒng)用于各種動(dòng)畫任務(wù)。實(shí)現(xiàn)這種功能的基礎(chǔ)是 C++對繼承的支持,對虛擬函數(shù)的支持,以及 MFC 實(shí)現(xiàn)的消息映射機(jī)制。又如,為了實(shí)現(xiàn)對 DLL 編程的支持和多線程編程的支持, MFC 內(nèi)部使用了特別的處理方法,使用模塊狀態(tài)、線程狀態(tài)等來管理一些重要信息。程序員繼承基類的同時(shí),把自己實(shí)現(xiàn)的虛擬函數(shù)和消息處理函數(shù)嵌入 MFC 的編程框架。 針對每種不同的對象, MFC 都設(shè)計(jì)了一組類對這些對象進(jìn)行封裝,每一組類都有一個(gè)基類,從基類派生出眾多更具體的類。這些類或者封裝了 Win32應(yīng)用程序編程接口,或者封裝了應(yīng)用程序的概念,或者封裝了 OLE 特性,或者封裝了ODBC 和 DAO 數(shù)據(jù)訪問的功能等等。 由于 OpenGL 是一個(gè)圖形標(biāo)準(zhǔn),是獨(dú)立于任何窗口系統(tǒng)或操作系統(tǒng)的,在 OpenGL中沒有提供窗口管理和消息事件響應(yīng)的函數(shù),也沒有鼠標(biāo)和鍵盤讀取事件的功能,所以在編程輔助庫提供了一些基本的窗口管理函數(shù)、事件處理函數(shù)和簡單的事件函數(shù)。 OpenGL 就是支持這種轉(zhuǎn)換的程序庫,它源于 SGI 公司為其圖 形 工作 站 開發(fā)的 IRISGL,在跨平臺(tái)移植過程中發(fā)展成為 OpenGL。 DirectX 編程模式 DirectX 是一種應(yīng)用程序接口( API),它可讓以 windows 為平臺(tái)的游戲或多媒體程序獲得更高的執(zhí)行效率,加強(qiáng) 3D 圖形和聲音效果,并提供設(shè)計(jì)人員一個(gè)共同的硬件驅(qū)動(dòng)標(biāo)準(zhǔn),讓游戲開發(fā)者不必為每一品牌的硬件來寫不同的驅(qū)動(dòng)程序,也降低用戶安裝及設(shè)置 硬件的復(fù)雜度。作為一種 API, OpenGL 遵循 C 語言的調(diào)用約定。在 幾何學(xué)上,向量大小是有向線段的長度 , 知道向量的分量,利用( 公式 21) 就能計(jì)算出向量的大小 : ‖u‖= 222 uzuyux ?? (公式 21) 其中, ‖u‖表示向量 u 的長度。三個(gè)坐標(biāo)軸構(gòu)成三個(gè)平面: XY 平面、 XZ 平面和 YZ 平面。當(dāng)然噴泉的模擬也離不開 計(jì)算機(jī) 圖形學(xué)本身的知識(shí),這些知識(shí)都將會(huì)在這部分介紹下。 具體要求 如下 : (1) 理解圖形學(xué)中粒子系統(tǒng)的原理和作用; (2) 利用 OpenGL 實(shí)現(xiàn)粒子系統(tǒng); (3) 模擬一個(gè)正在噴水的噴泉,考慮水滴的材質(zhì)和光照屬性,或選擇較好的貼圖; (4) 噴泉的水流要連貫,水滴成流,符合現(xiàn)實(shí)情況,有曲線的噴出下落路線; (5) 設(shè)計(jì)并繪制一個(gè)場景,使得場景比較逼真。它的意義如以下幾個(gè)方面: (1) 自然景物的模擬一直是計(jì)算機(jī)圖形學(xué)的研究熱點(diǎn)之一。 論文研究的意義 伴隨著工業(yè)設(shè)計(jì),游戲開發(fā),虛擬呈現(xiàn)的不斷發(fā)展,計(jì)算機(jī)圖形學(xué)逐漸在計(jì)算機(jī)領(lǐng)域中,脫穎而出,并為人們的生產(chǎn)生活帶來巨大的方便以及娛樂。這些粒子都有各自的生命周期,在系統(tǒng)中都要經(jīng)歷“產(chǎn)生”、 “運(yùn)動(dòng)和生長”及“消亡”三個(gè)階段。 at the same time, adopt Line way instead of traditional way rendering particles were simulated. This means simulation fountains are artificial, a more realistic analog fountain fast speed, in ordinary microputer can get satisfactory effect. Key words: Virtual scene。該系統(tǒng)能夠在三維效果的基礎(chǔ)上進(jìn)行自由視角轉(zhuǎn)換,任意距離的拉近拉遠(yuǎn),展示了三維模擬的真實(shí)性。噴泉、瀑布、火焰、水流、雨、雪等具有不規(guī)則性、動(dòng) 態(tài)性和隨機(jī)性,這些自然景物的模擬十分復(fù)雜困難,具有一定的挑戰(zhàn)性。 噴泉效果可以大大增強(qiáng)虛擬現(xiàn)實(shí)系統(tǒng)的沉浸感,粒子系統(tǒng)是實(shí)現(xiàn)噴泉效果的有效方法。 Fountain 目 錄 III 目 錄 1 緒論 ................................................................... 1 論文研究的背景 ..................................................... 1 論文研究的意義 ..................................................... 1 論文的研究內(nèi)容 ..................................................... 2 論文組織結(jié)構(gòu) ....................................................... 3 2 系統(tǒng)相關(guān)技術(shù)與原理 ..................................................... 4 物理學(xué)知識(shí) ......................................................... 4 數(shù)學(xué)知識(shí) ........................................................... 4 DirectX 與 OpenGL ................................................... 5 DirectX
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1