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

正文內容

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

2024-12-29 21:56 上一頁面

下一頁面
  

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