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

正文內(nèi)容

基于骨骼模型的舞蹈動(dòng)作的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文(編輯修改稿)

2025-07-16 13:00 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 轉(zhuǎn)0000000050 y軸腳移動(dòng)00000200 過(guò)渡函數(shù)的設(shè)計(jì)在本設(shè)計(jì)中為了使關(guān)鍵手勢(shì)之間更好的過(guò)渡,而設(shè)計(jì)了過(guò)渡函數(shù)。以右手的過(guò)渡函數(shù)為例。void Rotation::RMiddle(GLfloat array[]) //中間過(guò)渡函數(shù){ for(int i = 0。 i MINSIZE。 i++) { if(array[i] != RMemberAngle[i]) { RFreeN[i] = array[i] RMemberAngle[i]。if(RFreeN[i] = amp。amp。 RFreeN[i] || RFreeN[i] amp。amp。 RFreeN[i] ) { RMemberAngle[i] = array[i]。 if(ifcontinue == 1)rcontinuous = 1 。 } RMemberAngle[i] += RFreeN[i] / 。 } }}在這個(gè)函數(shù)中array數(shù)組是新的關(guān)鍵舞蹈動(dòng)作數(shù)組中的數(shù)據(jù),MINSIZE是經(jīng)過(guò)宏定義的列坐標(biāo)的總數(shù),即各個(gè)關(guān)節(jié)需要控制的總數(shù)。RmemberAngle數(shù)組是用于記錄上一次變換后的數(shù)組,RfreeN數(shù)組負(fù)責(zé)記錄新數(shù)據(jù)和記憶數(shù)據(jù)之差,然后用這個(gè)差數(shù)據(jù)去除以一個(gè)特定的閾值,在我的設(shè)計(jì)中,該閾值的大小決定了舞蹈關(guān)鍵動(dòng)作之間過(guò)渡的速度,閾值越小速度越快,反之則越大。在過(guò)渡函數(shù)被調(diào)用的過(guò)程中,判斷新數(shù)組和記憶數(shù)組的差值是否已經(jīng)足夠小,如果足夠小,則直接將新數(shù)組中的數(shù)據(jù)賦值給記憶數(shù)組,以免產(chǎn)生無(wú)限循環(huán)的狀況。三維虛擬人舞蹈動(dòng)作的平滑度直接影響到舞蹈運(yùn)動(dòng)的可懂性。虛擬人舞蹈動(dòng)作的特殊性在于它是有一些關(guān)鍵動(dòng)作合成的動(dòng)畫(huà)序列,相鄰的兩個(gè)舞蹈動(dòng)作之間存在著很大的動(dòng)作差異,如果不進(jìn)行平滑處理,將導(dǎo)致舞蹈動(dòng)作在相鄰關(guān)鍵動(dòng)作的銜接處產(chǎn)生大幅度變化,這樣將產(chǎn)生跳幀現(xiàn)象,給人不舒服的感覺(jué)。加入設(shè)計(jì)的過(guò)渡函數(shù)后,動(dòng)作平緩過(guò)渡,動(dòng)作銜接流暢,比較符合真實(shí)狀態(tài)下人的舞蹈過(guò)程。 燈光效果的設(shè)計(jì) 在本程序中為了盡可能的使最終效果接近于動(dòng)畫(huà)或影視作品的效果,添加的燈光的效果。在本例中,自上而下添加了一個(gè)類(lèi)似聚光燈的效果。下面對(duì)光照效果的處理做一下簡(jiǎn)單的介紹。 關(guān)于光照效果 當(dāng)光照射到一個(gè)物體表面上時(shí),會(huì)出現(xiàn)三種情形。首先,光可以通過(guò)物體表面向空間反射,產(chǎn)生反射光。其次,對(duì)于透明體,光可以穿透該物體并從另一端射出,產(chǎn)生透射光。最后,部分光將被物體表面吸收而轉(zhuǎn)換成熱。在上述三部分光中,僅僅是透射光和反射光能夠進(jìn)入人眼產(chǎn)生視覺(jué)效果。 由于真實(shí)感圖形是通過(guò)景物表面的顏色和明暗色調(diào)來(lái)表現(xiàn)景物的幾何形狀、空間位置以及表面材料的,而一個(gè)物體表面所呈現(xiàn)的顏色是由表面向視線方向輻射的光能決定的。在計(jì)算機(jī)圖形學(xué)中,常采用一個(gè)既能表示光能大小又能表示其顏色組成的物理量即光亮度(luminance)或光強(qiáng)(intensity of light)來(lái)描述物體表面朝某方向輻射光能的顏色。采用這個(gè)物理量可以正確描述光在物體表面的反射、透射和吸收現(xiàn)象,因而可以正確計(jì)算處物體表面在空間給定方向上的光能顏色?! ∥矬w表面向空間給定方向輻射的光強(qiáng)可應(yīng)用光照模型進(jìn)行計(jì)算。簡(jiǎn)單的光照模型通常假定物體表面是光滑的且由理想材料構(gòu)成,因此只考慮光源照射在物體表面產(chǎn)生的反射光,所生成的圖形可以模擬處不透明物體表面的明暗過(guò)渡,具有一定的真實(shí)感效果。復(fù)雜的光照模型除了考慮上述因素外,還要考慮周?chē)h(huán)境的光對(duì)物體表面的影響。如光亮平滑的物體表面會(huì)將環(huán)境中其它物體映像在表面上,而通過(guò)透明物體也可看到其后的環(huán)境景象。這類(lèi)光照模型稱(chēng)為整體光照模型,它能模擬出鏡面映像、透明等較精致的光照效果。為了更真實(shí)的繪制圖形,還要考慮物體表面的細(xì)節(jié)紋理,這通常使用一種稱(chēng)為“紋理映射”(texture mapping)的技術(shù)把已有的平面花紋圖案映射到物體表面上,并在應(yīng)用光照模型時(shí)將這些花紋的顏色考慮進(jìn)去,物體表面細(xì)節(jié)的模擬使繪制的圖形更接近自然景物。 在OpenGL簡(jiǎn)單光照模型中的幾種光分為:輻射光(Emitted Light)、環(huán)境光(Ambient Light)、漫射光(Diffuse Light)、鏡面光(Specular Light)?! ≥椛涔馐亲詈?jiǎn)單的一種光,它直接從物體發(fā)出并且不受任何光源影響?! …h(huán)境光是由光源發(fā)出經(jīng)環(huán)境多次散射而無(wú)法確定其方向的光,即似乎來(lái)自所有方向。一般說(shuō)來(lái),房間里的環(huán)境光成分要多些,戶(hù)外的相反要少得多,因?yàn)榇蟛糠止獍聪嗤较蛘丈?,而且在?hù)外很少有其他物體反射的光。當(dāng)環(huán)境光照到曲面上時(shí),它在各個(gè)方向上均等地發(fā)散(類(lèi)似于無(wú)影燈光)?! ÷涔鈦?lái)自一個(gè)方向,它垂直于物體時(shí)比傾斜時(shí)更明亮。一旦它照射到物體上,則在各個(gè)方向上均勻地發(fā)散出去。于是,無(wú)論視點(diǎn)在哪里它都一樣亮。來(lái)自特定位置和特定方向的任何光,都可能有散射成分?! $R面光來(lái)自特定方向并沿另一方向反射出去,一個(gè)平行激光束在高質(zhì)量的鏡面上產(chǎn)生100%的鏡面反射。光亮的金屬和塑料具有很高非反射成分,而象粉筆和地毯等幾乎沒(méi)有反射成分。因此,三某種意義上講,物體的反射程度等同于其上的光強(qiáng)(或光亮度)。 本例中的聚光燈效果 圖316在場(chǎng)景中繪制一個(gè)圓錐形,通過(guò)光照效果中的融合處理,模擬出聚光燈的效果。繪制圓錐形:glPushMatrix()。 glRotatef(90,1,0,0)。 glTranslatef(0,128,0)。 auxSolidCone(2,11)。glPopMatrix()。 glEnable(GL_TEXTURE_2D)。 glClearDepth()。 glDepthFunc(GL_LEQUAL)。glEnable(GL_DEPTH_TEST)。 // 開(kāi)啟深度測(cè)試 glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST)。 // 最精細(xì)的透視計(jì)算 glLightfv(GL_LIGHT1, GL_SPECULAR, light1_specular)。 // light2的鏡面反射光 glLightf(GL_LIGHT1, GL_SPOT_CUTOFF, angle_Light1)。 // light2的聚光截止角為 glColor4f(,)。 // 全亮度,50% Alpha 混合 glBlendFunc(GL_SRC_ALPHA,GL_ONE)。 // 基于源象素alpha通道值的半透明混合函數(shù) glEnable(GL_BLEND)。 // 打開(kāi)混合表32繪制模式的名稱(chēng)和含義繪制模式含義GL_POINTS把每一個(gè)頂點(diǎn)作為一個(gè)點(diǎn)進(jìn)行處理。GL_LINES把每一個(gè)頂點(diǎn)作為一個(gè)獨(dú)立的線段。GL_LINE_STRIP繪制從第一個(gè)頂點(diǎn)到最后一個(gè)頂點(diǎn)依次相連的一組線段。GL_LINE_LOOP繪制從定義第一個(gè)頂點(diǎn)到最后一個(gè)頂點(diǎn)依次相連的一組線段,然后最后一個(gè)頂點(diǎn)與第一個(gè)頂點(diǎn)相連。GL_TRIANGLES把每三個(gè)頂點(diǎn)作為一個(gè)獨(dú)立的三角形,進(jìn)行繪制。GL_TRIANGLE_STRIP繪制一組相連的三角形。GL_TRIANGLE_FAN繪制一組相連的三角形。GL_QUADS繪制由4個(gè)頂點(diǎn)組成的一組單獨(dú)的四邊形。GL_QUADS_STRIP繪制一組相連的四邊形。GL_POLYGON繪制一個(gè)凸多邊形。 消息響應(yīng)的設(shè)計(jì)為了方便操作者可以更好的觀察模型手勢(shì)動(dòng)作,特別設(shè)計(jì)了鼠標(biāo)和鍵盤(pán)的按鍵消息響應(yīng)。case WM_LBUTTONDOWN: // 按下鼠標(biāo)左鍵,改變繪制模式 if(() == GL_TRIANGLES) { (GL_LINE_STRIP)。 } else { (GL_TRIANGLES)。 } break。case WM_RBUTTONDOWN: // 按下鼠標(biāo)右鍵,改變光照模式 g_bLighting = !g_bLighting。 if(g_bLighting) { glEnable(GL_LIGHTING)。 } else { glDisable(GL_LIGHTING)。 } break。case WM_KEYDOWN: // 鍵盤(pán)響應(yīng) switch(wParam) { case VK_ESCAPE: // 按下ESC鍵,結(jié)束程序 PostQuitMessage(0)。 break。 case VK_LEFT: // 按下向左鍵,旋轉(zhuǎn)觀察點(diǎn) g_RotateX = 。 break。 case VK_RIGHT: // 按下向右鍵,旋轉(zhuǎn)觀察點(diǎn) g_RotateX += 。 break。 case VK_UP: // 按下向上鍵,拉近觀察點(diǎn) lookatfarandnear = 。 break。 case VK_DOWN: // 按下向下鍵,推遠(yuǎn)觀察點(diǎn) lookatfarandnear += 。 break。 case 65: //按下A鍵,觀察點(diǎn)右移 lookatleftandright += 。 break。 case 68: //按下D鍵,觀察點(diǎn)左移 lookatleftandright = 。 break。 case 87: //按下W鍵,觀察點(diǎn)下移 lookatupanddown = 。 break。 case 83: //按下S鍵,觀察點(diǎn)上移 lookatupanddown += 。 break。 case 73: realud += 。 //按下I鍵,模型上移 break。 case 75: realud = 。 //按下K鍵,模型下移 break。 case 74: reallr = 。 //按下J鍵,模型左移 break。 case 76: reallr += 。 //按下L鍵,模型右移 break。從程序中可以看到,當(dāng)操作者按下鼠標(biāo)左鍵的時(shí)候,會(huì)改變繪制的模式,繪制模式如表32所示。按下鼠標(biāo)右鍵的時(shí)候,會(huì)改變光照模式,若已開(kāi)啟光照即關(guān)閉光照,若已關(guān)閉光照則開(kāi)啟光照。按下方向鍵可以推進(jìn)拉遠(yuǎn)觀看距離以及旋轉(zhuǎn)角度觀看,按下ASDW四鍵,可以改變觀看方式,即左視、右視、仰視、俯視。按下JKLI鍵可以移動(dòng)模型位置,既方便觀看,又方便截圖。 本章小結(jié)本章詳細(xì)介紹了程序設(shè)計(jì)的過(guò)程,以及程序內(nèi)容的設(shè)計(jì)。如菜單和對(duì)話框的設(shè)計(jì),多種手勢(shì)的設(shè)計(jì),手勢(shì)分別控制的設(shè)計(jì),消息響應(yīng)的設(shè)計(jì),以及重要函數(shù)的設(shè)計(jì)。從本章的介紹中我們可以更好的了解程序的設(shè)計(jì)過(guò)程。4 結(jié)論通過(guò)對(duì)手語(yǔ)的研究,“基于骨骼模型的舞蹈動(dòng)作的設(shè)計(jì)與實(shí)現(xiàn)”的程序設(shè)計(jì)基本達(dá)到了預(yù)期設(shè)計(jì)的目標(biāo)。消息響應(yīng)機(jī)制使得人機(jī)交互更好的實(shí)現(xiàn),觀察方式多樣化,觀察模式多變化,配有操作幫助,使得操作更加簡(jiǎn)潔易懂。在“基于骨骼模型的舞蹈動(dòng)作的設(shè)計(jì)與實(shí)現(xiàn)”的程序設(shè)計(jì)研究中,充分利用了VC++面向?qū)ο笳Z(yǔ)言的特點(diǎn),很好的使用了Win32 API的框架以及函數(shù)。對(duì)類(lèi)進(jìn)行了良好的封裝,更加方便了程序員的重用,提高了程序的靈活性,為繼續(xù)開(kāi)發(fā)新的舞蹈動(dòng)作以及其他肢體動(dòng)作提供了良好的基礎(chǔ)。本課題的研究對(duì)虛擬人仿真技術(shù)、計(jì)算機(jī)圖形學(xué)、機(jī)器人運(yùn)動(dòng)學(xué)、生物機(jī)械學(xué)等諸多相關(guān)領(lǐng)域都有一定的現(xiàn)實(shí)意義。參考文獻(xiàn)[1] 曾培凱,高偉,郭瑾,曾培勇,2004 26(1)[2]吳婷婷,葛元,2005 26(6)[3] . 論文天下,2009[4] 百度百科[5] 高偉,郭瑾,2002(11)[6] 余曉婷,2009(4)[7] 顏慶聰,陳益強(qiáng),[8] 解梅,景孝凱. 關(guān)于光線投射算法的OpenGL高效實(shí)現(xiàn). 電子科技大學(xué)學(xué)報(bào), 2008年7月[9] 崔璟,北京化工大學(xué)碩士學(xué)位論文,基于OpenGL的三維視景的建立.[10] 李治國(guó),郭立基于OpenGL的光照處理技術(shù)及實(shí)現(xiàn),中國(guó)科學(xué)技術(shù)大學(xué)電子科學(xué)與技術(shù)系.安徽合肥[11] Charles Petzold.《Windows程序設(shè)計(jì)(第5版)》.北京大學(xué)出版社,1999[12] Dave Programming Guide Seventh Publishing Company,2009[13] Alessandro aka Bones Game Programming Wiki,2006[14] John Lin, Ying Wu, Thomas . Modeling the Constraints of Human Hand Motion.[15] Dr. Samuel R. Buss 3D Computer GraphicsA mathematical introduction with OpenGL[16] AbdulMalik S. AlSalman,Fahad AlQahtani。 GLAL: An OpenGL Arabization Library,2005[17] Tools and Products,《IEEE Computer Graphics
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1