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

正文內(nèi)容

基于opengl與粒子系統(tǒng)的瀑布場(chǎng)景模擬-全文預(yù)覽

  

【正文】 顯示 福州大學(xué) 至誠(chéng) 學(xué)院 本科生畢業(yè)設(shè)計(jì) (論文 ) 24 水流控制 圖 57干涸的瀑布 圖 58湍急的瀑布 基于 OpenGL 與粒子系統(tǒng)的瀑布場(chǎng)景模擬 25 霧化效果 圖 59霧化效果 福州大學(xué) 至誠(chéng) 學(xué)院 本科生畢業(yè)設(shè)計(jì) (論文 ) 26 結(jié)論 對(duì)自然景物的模擬一直是計(jì)算機(jī)圖形學(xué)中最難以解決的問(wèn)題之一。構(gòu)建出一個(gè)自己的瀑布模型。通過(guò)鍵盤(pán)的某個(gè)鍵、鼠標(biāo)的左鍵連入某一函數(shù),實(shí)現(xiàn)了旋轉(zhuǎn)、霧化等效果。 在全部制作當(dāng)中,也遇到不少困難。希望在今后經(jīng)過(guò)深入學(xué)習(xí),可以制作出一個(gè)完整的瀑布場(chǎng)景模擬。最后經(jīng)過(guò)幾番調(diào)試安裝了 freeglut 庫(kù)。瀑布有急有緩,通過(guò)控制單位時(shí)間粒子更新數(shù)量,實(shí)現(xiàn)了干涸的、湍急的瀑布兩種狀態(tài)。在本文中,瀑布場(chǎng)景應(yīng)用到紋理映射技術(shù),對(duì)背景和水粒子進(jìn)行貼圖,增添真實(shí)性。本文 同時(shí)結(jié)合 C 語(yǔ)言 ,通過(guò)選擇 恰當(dāng) 粒子數(shù)量和粒子模型 ,生 成 一個(gè)瀑布場(chǎng)景模擬 并滿足視景系統(tǒng)實(shí)時(shí)性的要求。 旋轉(zhuǎn)時(shí)不同光照效果分析 基于 OpenGL 與粒子系統(tǒng)的瀑布場(chǎng)景模擬 23 圖 52四分之一瀑布變綠色 圖 53顏色漸變綠、黃、白 圖 54青色的瀑布 圖 55漸變色綠、黃 通過(guò)鼠標(biāo)、鍵盤(pán)移動(dòng),瀑布隨著角度的不同,光源位置固定,瀑布受到的光照不同顏色發(fā)生改變。 // 開(kāi)啟光照模型 2 glEnable(GL_LIGHT2)。 glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, 1 )。 glLightfv(GL_LIGHT2, GL_POSITION, light_pos2 )。 //經(jīng)過(guò)漫反射后形成的光線強(qiáng)度 glLightfv(GL_LIGHT1, GL_POSITION, light_pos1 )。 //指定用于光照計(jì)算的當(dāng)前材質(zhì)屬性 glLightfv(GL_LIGHT0, GL_POSITION, light_pos0 )。 // 使光照模型平滑 BuildTexture(Data/, texture[0])。 // 黃燈 GLfloat amb_color2[]={ , , , }。 // 第二盞燈位置 GLfloat light_col1[]={ , , , }。 GLfloat light_pos0[]={ , , , }。本文,先指定了每一盞燈的位置和顏色,再添加光照球體,通過(guò) glShadeModel()函數(shù),使光照更加平滑。//所要顯示的文字 } else { } 光照變換效果 本設(shè)計(jì)中,一共有三盞燈,分別是白燈、綠燈、黃燈。//所要顯示的文字 } else { } if(second_line){ selectFont(25,GB2312_CHARSET,黑體 )。 } 福州大學(xué) 至誠(chéng) 學(xué)院 本科生畢業(yè)設(shè)計(jì) (論文 ) 20 if(first_line){ selectFont(25,GB2312_CHARSET,黑體 )。 glDeleteLists( list, 1 )。 ilen。 MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, str, 1, wstring, len )。\039。 HDC hDC=wglGetCurrentDC()。寬字符就是用 16bit 來(lái)表示的字符。例如,本文中,漢字就是雙字節(jié),但要以一個(gè)字符來(lái)計(jì)算。 // 霧的終止深度 glEnable(GL_FOG)。 // 霧的顏色 glFogf(GL_FOG_DENSITY, )。設(shè)定好后,開(kāi)啟霧化,結(jié)束霧化。 i++ ) 福州大學(xué) 至誠(chéng) 學(xué)院 本科生畢業(yè)設(shè)計(jì) (論文 ) 18 { particlesInit(i)。 // 載入文件 } } GLvoid InitFMOD1(void) // 載入背景音頻文件 { if (FSOUND_Init(44100, 32, 0)) // 把聲音初始化 為 44khz { mp3back = FSOUND_Stream_OpenFile(data/, FSOUND_LOOP_NORMAL, 0)。定義音樂(lè)格式為 mp3,載入音頻文件,聲音初始化為 44khz,讀入文件所在位置,載入后播放。 if(camRadius ) camRadius = 。 camPitch += *(GLfloat)(ymy)。 buttonDown = button。 void mouse(int button, int state, int x, int y) { // 將現(xiàn)在攝像機(jī)位 置保存到當(dāng)前鼠標(biāo) mx = x。 } 鼠標(biāo)移動(dòng) 鼠標(biāo)操作類(lèi)似于鍵盤(pán)操作。d39。以下是代碼實(shí)現(xiàn)部分: void keyboard(unsigned char key, int x, int y) { if(key==39。 // 播放背景音樂(lè) mp3 } display()。實(shí)現(xiàn)代碼如下: void keyboard(unsigned char key, int x, int y) { if(key==39。 // 初始化音頻文件 FSOUND_Stream_Play(FSOUND_FREE,mp3back)。 } 古詩(shī)朗誦 當(dāng)按下鍵盤(pán) l鍵,對(duì)音樂(lè)進(jìn)行初始化,再播放古詩(shī)朗誦音樂(lè)。 } if(key==39。再次按下時(shí),文字消失。 } display()。以下為代碼實(shí)現(xiàn): int show_FOG=0。 } 霧化控制 起初, int show_FOG=0。z39。 } if(key==39。 } if(key==39。 } if(key==39。 } if(key==39。旋轉(zhuǎn)實(shí)現(xiàn)代碼如下: void keyboard(unsigned char key, int x, int y) { if(key==39。 glTranslatef(x,y,z)。 //平移至球心 glEnable(GL_TEXTURE_2D)。 //二次曲面紋理貼圖 x = particles[i][0]。以下是繪制粒子代碼實(shí)現(xiàn): void drawParticle(int i) 福州大學(xué) 至誠(chéng) 學(xué)院 本科生畢業(yè)設(shè)計(jì) (論文 ) 12 { GLUquadric *myQuad。 // 更新豎直位置 } } } } 瀑布粒子繪制實(shí)現(xiàn) 基于本課題是瀑布粒子,需要繪制一個(gè)水粒子。 // 更新水平速度 particles[i][5] *= +tweak(.2)。//粒子是否小于設(shè)置的底部位置 else { { if (particles[i][2] LEDGE) //粒子是否還在崖壁上方運(yùn)動(dòng) { particles[i][5] += GRAV*DELTA_T*((.1))。起初,粒子都在瀑布頂部位置,更新時(shí)首先判斷粒子是否已經(jīng)超 出底部位置,如若超出即從粒子系統(tǒng)刪除。 j++) //更新每一個(gè)活躍粒子的位置和狀態(tài) { if (particles[j][6] 0.) { drawParticle(j)。 k++ )//有沒(méi)有足夠的粒子就記下這里潛在的粒子 { if (particles[k][6] 0.) { particles[k][6] = 1.。 for ( j=k=0。 // 做標(biāo)記,活躍的粒子并且碰到壁架 } 福州大學(xué) 至誠(chéng) 學(xué)院 本科生畢業(yè)設(shè)計(jì) (論文 ) 10 瀑布粒子生成實(shí)現(xiàn) 本文中,粒子的更新是根據(jù)屏幕上現(xiàn)顯示的粒子是否小于 HOWMANY來(lái)判斷,如果沒(méi)有足夠的粒子,粒子源即根據(jù) ToUpdate數(shù)值進(jìn)行生成。 // z 方向位置初始化 particles[i][3] = 0.。 define TOP 2. //頂部位置 define BOTTOM 6. //底部 位置 define LEDGE 3. //崖壁位置 define DELTA_T //衰減單位時(shí)間 define GRAV 30. //重力加速度 float tweak(float scale) //衰減計(jì)算方法 { return(scale*(2.*((float)rand()/RAND_MAX)1.))。從 x、 y、 z三個(gè)方向位置坐標(biāo)及速度給定粒子屬性。并且利用紋理映射使水珠效果更加逼真。 本文采用的方法是,當(dāng)粒子超出了規(guī)定的區(qū)域的時(shí)候后,認(rèn)為終結(jié)其生命周期,此時(shí)粒子將從整個(gè)系統(tǒng)中刪除,此時(shí),如若粒子數(shù)目小于初始設(shè)置的粒子總數(shù),那么系統(tǒng)馬上增加新的粒子,從而達(dá)到整個(gè)系統(tǒng)的穩(wěn)定。 瀑布粒子的消亡 每個(gè)粒子都有其出生,發(fā)展,死亡的生命歷程,整個(gè)粒子系統(tǒng)不斷更新,時(shí)刻保持著一種動(dòng)態(tài)平衡,用來(lái)保證粒子總數(shù)不變。 瀑布粒子的更新與運(yùn)動(dòng) 粒子運(yùn)動(dòng)的過(guò)程中,每經(jīng)過(guò)一個(gè)單位時(shí)間,粒子的速度大小、方向及位置都會(huì)發(fā)生改變。以下是瀑布粒子系統(tǒng)的大致框架: 開(kāi) 始粒 子 初 始 化在 瀑 布 頂 端 ?豎 直 運(yùn) 動(dòng) , 更 新 豎直 方 向 位 置 及 速 度觸 碰 崖 壁 ?拋 物 線 運(yùn) 動(dòng) , 更 新豎 直 、 水 平 方 向 速度 及 位 置超 出 設(shè) 定 瀑 布 底 端 ?粒 子 消 亡結(jié) 束否否否是是是 圖 31粒子系統(tǒng)大致框架圖 基于 OpenGL 與粒子系統(tǒng)的瀑布場(chǎng)景模擬 7 瀑布模型的定義 本課題,定義的瀑布模型,先進(jìn)性直線運(yùn)動(dòng),碰到崖壁時(shí)反方向彈起,最后做一個(gè)拋物線運(yùn)動(dòng)。 (2) 更新粒子的屬性:本文隨著時(shí)間的變化,瀑布例子的位置、運(yùn)動(dòng)方向、速度都會(huì)發(fā)生改變。如位置、速度、顏色、生命期、透明度等等都可以成為粒子的屬性。而 Alpha值為 則表示對(duì)象是完全不透明的 [10]。 圖 22二維紋理映射到三維物體表面圖 色彩融合 在 OpenGL 中,紅、綠、藍(lán)三種顏色混合而成組成不同的顏色,每種顏色成分使用在~ 之間的任意有效浮點(diǎn)數(shù)來(lái)表示顏色值?,F(xiàn)實(shí)世界每個(gè)物體都不可能是百分之百光滑的,都具有自己的紋理。 OpenGL 函數(shù) 窗口操作函數(shù): glutInit()對(duì) glut 進(jìn)行初始化,并處理所有命令參數(shù),此函數(shù)要在調(diào)用其它任何 glut 函數(shù)之前調(diào)用、 glutInitDisplayMode()用來(lái)指定窗口模式、 glutInitWindowSize()用來(lái)指定窗口大小、 glutInitWindowPosition()用來(lái)指定窗口位置、 glutGreatWindow 用來(lái)創(chuàng)建一個(gè)支持 OpenGL 渲染環(huán)境的窗口; 回調(diào)函數(shù): GlutDisplayFunc()響應(yīng)刷新消息、 glutReshapeFunc()重新塑形、 glutTimerFunc()定時(shí)器函 數(shù)、 glutKeyboardFunc()和 glutMouseFunc()允許鍵盤(pán)的一個(gè)鍵或鼠標(biāo)上的一個(gè)按鈕與一個(gè)函數(shù)相關(guān)聯(lián)、 glutIdleFunc()強(qiáng)制刷新; 程序運(yùn)行函數(shù): glutMainLoop()、 glFlush()。 OpenGL最基本的命令函數(shù)在核心庫(kù)中。 基于 OpenGL 與粒子系統(tǒng)的瀑布場(chǎng)景模擬 3 第 2 章 相關(guān)技術(shù)介紹 OpenGL 技術(shù) “開(kāi)放式圖形庫(kù)”是 OpenGL的全稱(chēng),它是一個(gè)快捷方便的三維圖形庫(kù)。粒子系統(tǒng)實(shí)現(xiàn)的步驟。采用一定物理知識(shí)及數(shù)學(xué)公式實(shí)現(xiàn)粒子軌跡運(yùn)動(dòng)。粒子的初始值根據(jù)公式隨機(jī)產(chǎn)生。瀑布較噴泉壯觀,巨大的水流自上而下,傾盆而至,伴著陽(yáng)光不同角度的照耀,形成一種美而壯于一體的景致,令人振奮。通過(guò)定義瀑布水流參數(shù) ,建立一個(gè)基于粒子系統(tǒng)與相關(guān)物理、數(shù)學(xué)原理的瀑布水流運(yùn)動(dòng)模型 ,并且詳細(xì)定義了相關(guān)參數(shù) 。自然也具有了比較廣闊的研究前景。 1998 年 和 運(yùn)用粒子系統(tǒng),從云的物理原理出發(fā)。1990 年 提出粒子系統(tǒng)的并行
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1