国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

內(nèi)河船舶操縱模擬器中虛擬人的模擬

2015-04-13 22:14:23周立松
中國水運(yùn) 2015年3期
關(guān)鍵詞:關(guān)鍵幀

周立松

摘 要:現(xiàn)有內(nèi)河船舶操縱模擬器中僅能模擬人員落水場景,且模擬效果較差,很有必要對模擬器中虛擬人及其動作的模擬進(jìn)行研究。采用分層表示模型將虛擬人分為骨骼層和皮膚層,在3Ds MAX中構(gòu)建虛擬人的骨骼模型,使用蒙皮骨骼技術(shù)將皮膚綁定在骨骼上,從而實(shí)現(xiàn)了虛擬人的幾何建模。根據(jù)人員動作的關(guān)鍵姿勢生成關(guān)鍵幀,再由關(guān)鍵幀生成動作的中間幀。用Cal3D骨骼動畫引擎將虛擬人動畫導(dǎo)出,并導(dǎo)入到OSG場景管理軟件中進(jìn)行繪制,最終實(shí)現(xiàn)了虛擬人及其運(yùn)動的模擬。

關(guān)鍵詞:內(nèi)河船舶操縱模擬器 虛擬人 蒙皮骨骼 關(guān)鍵幀

內(nèi)河船舶操縱模擬器是內(nèi)河船員教學(xué)與培訓(xùn)的重要設(shè)備。在模擬器中,無論是人員行走、攀爬、落水后掙扎,還是船舶靠離碼頭時(shí)人員拋、接、系纜繩等場景都需要對人員及其動作進(jìn)行模擬,現(xiàn)有的內(nèi)河船船操縱模擬器中僅能模擬人員落水場景,且模擬效果較差。所以很有必要對模擬器中虛擬人及其動作的模擬進(jìn)行研究,從而豐富場景的顯示內(nèi)容,提高場景的真實(shí)感。

從上世紀(jì)80年代開始,有關(guān)虛擬人及其運(yùn)動研究就得到了開展,隨著計(jì)算機(jī)處理能力的提高,一些關(guān)于虛擬人建模和運(yùn)動的關(guān)鍵技術(shù)取得了較大的進(jìn)步。本文的主要工作是創(chuàng)建虛擬人模型,通過對人員行走、攀爬等的分析,獲得動作關(guān)鍵幀,最后用場景驅(qū)動軟件將虛擬人的動作顯示到場景中。

虛擬人的幾何建模

虛擬人的幾何建模就是根據(jù)虛擬人的外觀和行為特征,在滿足逼真度要求的前提下,將虛擬人在計(jì)算機(jī)中進(jìn)行幾何表示的過程。對虛擬人進(jìn)行幾何建模是實(shí)現(xiàn)計(jì)算機(jī)人體模擬的必要條件,一些學(xué)者對這一領(lǐng)域做了深入研究,總結(jié)表面模型、體模型和分層表示模型等建模方法。

采用分層表示模型,一個(gè)虛擬人模型一般可以分為3個(gè)層次,即骨骼層、肌肉層和皮膚層。骨骼層包括人體主要骨架結(jié)構(gòu)和主要關(guān)節(jié),他們共同組合決定人體的基本姿態(tài),其狀態(tài)變化由各關(guān)節(jié)參數(shù)控制;肌肉層確定了人體運(yùn)動過程中各部位的變形;皮膚層確定了人體的最終顯示外觀,其形狀變化受肌肉層影響。分層表示模型方法從人體生理結(jié)構(gòu)入手,直觀地反映了人體運(yùn)動過程中各個(gè)層次的變化和相互影響,對虛擬人及其運(yùn)動的模擬更為逼真,而且由于對虛擬人的運(yùn)動控制只需在骨骼層上進(jìn)行,從而使得運(yùn)動控制算法的設(shè)計(jì)更加簡單,因此分層表示模型方法已成為目前最流行的虛擬人建模方法。

采用分層表示模型對虛擬人進(jìn)行幾何建模。由于人體的肌肉和皮膚形變十分復(fù)雜,根據(jù)內(nèi)河模擬器的實(shí)際需求,我們并沒有考慮虛擬人運(yùn)動過程中的形變問題,只是將虛擬人體分成骨骼層和皮膚層,并采用蒙皮骨骼技術(shù)實(shí)現(xiàn)骨骼層和皮膚層的關(guān)聯(lián)。

蒙皮骨骼技術(shù)包含骨骼和蒙皮兩個(gè)部分。骨骼是用以控制蒙皮的一種抽象概念。蒙皮是一個(gè)整體網(wǎng)格,被骨骼控制并顯示在外部的因素。蒙皮骨骼動畫中骨骼控制蒙皮運(yùn)動,而骨骼本身的運(yùn)動是動畫數(shù)據(jù),每個(gè)關(guān)鍵幀中包含時(shí)間和骨骼運(yùn)動信息,運(yùn)動信息可以用一個(gè)矩陣直接表示骨骼新的變換,也可用四元數(shù)表示骨骼的旋轉(zhuǎn)。蒙皮將網(wǎng)格中的頂點(diǎn)附著在骨骼之上,而且每個(gè)頂點(diǎn)可以被多個(gè)骨骼所控制,這樣在關(guān)節(jié)處的頂點(diǎn)由于同時(shí)受到父子骨骼的拉扯而改變位置就消除了裂縫。

采用3Ds MAX作為虛擬人的建模工具,其原因包括以下幾個(gè)方面:一是3Ds MAX建模功能非常強(qiáng)大,能夠較好的滿足對虛擬人進(jìn)行建模的需求,并且其在角色動畫方面具備很明顯的優(yōu)勢,另外豐富的插件也是其一大亮點(diǎn);二是由于3Ds MAX建立的模型具有較高的逼真度;三是3Ds MAX能夠與其他軟件進(jìn)行很好的配合,便于建模后相關(guān)操作的順利進(jìn)行。用3Ds MAX建立的人體骨骼如圖1(a)所示,進(jìn)行蒙皮后的人體模型如圖1(b)所示,人體模型是四肢張開的,這樣方便后面的處理。

虛擬人的動作模擬

虛擬人的幾何模型建好后,得到了虛擬人的靜態(tài)顯示。為了對虛擬人在特定的環(huán)境和場景中的動作進(jìn)行模擬,還需要對虛擬人進(jìn)行運(yùn)動控制,使其具有動態(tài)特性。在對虛擬人的運(yùn)動控制研究方面采用的技術(shù)主要有:參數(shù)化關(guān)鍵幀技術(shù),過程動畫技術(shù),運(yùn)動捕捉技術(shù)。

參數(shù)化關(guān)鍵幀技術(shù)由關(guān)鍵幀動畫技術(shù)演化而來,是較早使用的對虛擬人進(jìn)行運(yùn)動控制的方法之一。使用該技術(shù)模擬人體運(yùn)動時(shí),需要首先給定運(yùn)動過程中的若干個(gè)關(guān)鍵姿態(tài),即關(guān)鍵幀,然后采用插補(bǔ)算法得到相鄰關(guān)鍵姿態(tài)間的若干個(gè)中間姿態(tài),即中間幀,這樣就實(shí)現(xiàn)了對人體運(yùn)動的控制。該方法簡單直觀,得到了廣泛的應(yīng)用,本文也采用此項(xiàng)技術(shù)實(shí)現(xiàn)虛擬人的動作模擬。

在內(nèi)河模擬器中需要對人員行走、攀爬、落水后掙扎及船舶靠離碼頭時(shí)人員接纜繩等動作進(jìn)行模擬,受篇幅的限制,以下僅以攀爬運(yùn)動中腿、腳的動作為例,對其關(guān)鍵幀進(jìn)行詳細(xì)分析。

人攀爬動作的第一個(gè)周期可大致分為兩個(gè)階段:左臂向上移動、右腿向上移動,右臂、左腿輔助運(yùn)動,同時(shí)身體向上移動;右臂向上移動、左腿向上移動,左臂、右腿輔助運(yùn)動,同時(shí)身體向上移動。這兩個(gè)階段是對稱的,所以研究其中一個(gè)階段即可。以下對第一個(gè)階段中腿和腳的動作過程進(jìn)行研究,將這一過程分為三個(gè)關(guān)鍵姿勢。

第一個(gè)關(guān)鍵姿勢是右腳剛剛抬起向上跨步,左腿直立,如圖2(a)所示;第二個(gè)關(guān)鍵姿勢是右腳踏上臺階,左腿伸直,如圖2(b)所示;第三個(gè)關(guān)鍵姿勢是左腿剛要抬起離開臺階,如圖2(c)所示。

得到三個(gè)關(guān)鍵姿勢后,用這三個(gè)關(guān)鍵姿勢作為關(guān)鍵幀,接下來進(jìn)行關(guān)鍵幀插值。先對第一和第二關(guān)鍵幀進(jìn)行插值,如圖3(a)所示,這個(gè)階段從右腳剛剛抬起向上跨步開始,到右腳接觸臺階結(jié)束。再對第二和第三關(guān)鍵幀進(jìn)行插值,如圖3(b)所示,這個(gè)階段從左腳跟逐漸抬起到左腳的腳踝不能繼續(xù)向上抬起時(shí)為止。最后對第三關(guān)鍵幀和下一階段的第一關(guān)鍵幀進(jìn)行插值,如圖3(c)所示,這個(gè)階段的動作是左腳逐漸抬起,右腳趨向直立。

虛擬人的顯示

1、顯示工具

建好的虛擬人模型要想在三維場景中顯示出來,需要用到場景驅(qū)動軟件,目前主要的場景驅(qū)動軟件有OpenGVS、VTree、Vega、OSG、OGRE等。其中OpenSceneGraph(簡稱OSG)使用OpenGL技術(shù)開發(fā),是一套基于C++平臺的應(yīng)用程序接口(API),它讓程序員能夠更加快速、便捷地創(chuàng)建高性能、跨平臺的交互式圖形程序。本文選用OSG作為場景驅(qū)動軟件來顯示虛擬人。

要想用OSG顯示虛擬人模型及其動作,還需要用到Cal3D骨骼動畫引擎。Cal3D使用的是基于關(guān)鍵幀的骨骼動畫,它把數(shù)據(jù)分為三部分:骨骼(Skeleton)、網(wǎng)格(Mesh)和動畫(Animation)。由一個(gè)文本配置文件(Cal3D.cfg)管理,每個(gè)動畫文件是獨(dú)立的。Cal3D支持動作混合,可以實(shí)現(xiàn)兩個(gè)動作的混合執(zhí)行。其中,每一個(gè)動作都有一個(gè)權(quán)重,即不同的動作優(yōu)先級是不一樣的。

Cal3D主要由文件導(dǎo)出器和C++庫兩部分構(gòu)成。文件導(dǎo)出器的作用是將三維建模工具建立的模型轉(zhuǎn)化成C++庫所能夠加載的Cal3D文件格式;C++庫提供各種方法,以便于加載導(dǎo)出文件、創(chuàng)建人物、運(yùn)行動畫并存儲必要的數(shù)據(jù),進(jìn)行三維圖形庫的繪制。

2、整體流程

虛擬人及其動作的模擬的整個(gè)流程如圖4所示。第一步,在3Ds MAX中進(jìn)行人體建模、生成人體骨骼;第二步,對骨骼模型進(jìn)行蒙皮、并制作蒙皮骨骼動畫;第三步,在3Ds MAX中裝載Cal3D文件導(dǎo)出器;并用導(dǎo)出器將蒙皮骨骼動畫文件導(dǎo)出;第四步整理.cfg文件;第五步,用OSG中調(diào)用Cal3D導(dǎo)出文件,顯示虛擬人及其動作。如圖5所示,分別是人員行走、攀爬、接纜繩及落水掙扎等動作的模擬效果。

結(jié)論

以內(nèi)河船舶操縱模擬器為應(yīng)用背景,對虛擬人及其運(yùn)動的模擬進(jìn)行了研究。采用分層表示模型,在3Ds MAX中建立了虛擬人骨骼模型,使用蒙皮骨骼技術(shù)將皮膚和骨骼進(jìn)行綁定;而后根據(jù)人員行走、攀爬等動作生成關(guān)鍵幀,并根據(jù)關(guān)鍵幀生成了中間幀。使用Cal3D骨骼動畫引擎將虛擬人蒙皮骨骼動畫導(dǎo)出并引入到OSG場景驅(qū)動軟件中進(jìn)行繪制。

今后還需要在以下方面做進(jìn)一步研究:將肌肉層添加到虛擬人模型中,同時(shí)將所做工作應(yīng)用到內(nèi)河船舶操縱模擬器中。

參考文獻(xiàn):

[1]徐愛國.虛擬人動畫中的三位服裝仿真技術(shù)研究:(博士學(xué)位論文). 杭州: 浙江大學(xué), 2006.

[2]景韶宇,沈治英.人機(jī)設(shè)計(jì)中的虛擬人仿真技術(shù)研究.計(jì)算機(jī)工程與應(yīng)用.2005, 41(6): 196-199.

[3] 羅冠,郝重陽.虛擬人骨骼結(jié)構(gòu)的多剛體系統(tǒng)建模方法研究.計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào).2005, 17(6): 1354-1358.

[4]羅冠.虛擬人的運(yùn)動生成及控制技術(shù)研究:(博士學(xué)位論文). 西安:西北工業(yè)大學(xué), 2003.

[5] 黃錦軍.虛擬人運(yùn)動控制技術(shù)的研究與實(shí)現(xiàn):(博士學(xué)位論文).武漢:華中科技大學(xué),2007.

[6]肖鵬,劉更代,徐明亮.OpenSceneGraph三維渲染引擎編程指南. 北京:清華大學(xué)出版社,2010.

[7]黃玲.捕捉虛擬人運(yùn)動的運(yùn)動控制技術(shù)的研究:(碩士學(xué)位論文).北京:首都師范大學(xué),2007.

(作者單位:廣西交通運(yùn)輸學(xué)校)

猜你喜歡
關(guān)鍵幀
基于改進(jìn)關(guān)鍵幀選擇的ORB-SLAM2 算法
基于計(jì)算機(jī)視覺的視頻圖像關(guān)鍵幀提取及修復(fù)方法
自適應(yīng)無監(jiān)督聚類算法的運(yùn)動圖像關(guān)鍵幀跟蹤
視頻檢索中的關(guān)鍵幀提取方法研究
人體運(yùn)動視頻關(guān)鍵幀優(yōu)化及行為識別
探討基于Tsallis熵的視頻關(guān)鍵幀提取技術(shù)
電子測試(2017年16期)2017-09-23 01:38:23
基于改進(jìn)關(guān)鍵幀選擇的RGB-D SLAM算法
基于相關(guān)系數(shù)的道路監(jiān)控視頻關(guān)鍵幀提取算法
基于聚散熵及運(yùn)動目標(biāo)檢測的監(jiān)控視頻關(guān)鍵幀提取
遺傳算法優(yōu)化LVQ網(wǎng)絡(luò)的監(jiān)控視頻關(guān)鍵幀內(nèi)容識別
兴国县| 连江县| 新巴尔虎左旗| 富蕴县| 大名县| 清河县| 永年县| 汕尾市| 甘德县| 乌兰县| 孟津县| 凌海市| 津市市| 邢台市| 北安市| 乐都县| 忻州市| 高台县| 方山县| 辉南县| 濉溪县| 仁寿县| 微山县| 兴文县| 曲靖市| 独山县| 通道| 甘泉县| 綦江县| 万源市| 博爱县| 磐石市| 旬邑县| 渑池县| 呼图壁县| 琼海市| 绥滨县| 饶平县| 庄浪县| 丁青县| 宾川县|