亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于骨骼動(dòng)畫原理的通用虛擬人仿真技術(shù)的制作方法

文檔序號(hào):6428785閱讀:206來源:國(guó)知局
專利名稱:基于骨骼動(dòng)畫原理的通用虛擬人仿真技術(shù)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及虛擬人仿真領(lǐng)域,具體講是一種能兼容OpenGL和Direct3D兩種圖形 API,并在OpenGL或Direct3D生成的虛擬環(huán)境中實(shí)現(xiàn)虛擬人仿真的技術(shù)。
背景技術(shù)
隨著虛擬現(xiàn)實(shí)技術(shù)應(yīng)用越來越深入,通過建立虛擬訓(xùn)練系統(tǒng)來培訓(xùn)操作人員已成為模擬訓(xùn)練的主流,在虛擬環(huán)境中加入虛擬人進(jìn)行各種模擬作業(yè),可以使用戶獲得更強(qiáng)的沉浸感。目前也有不少引擎尤其是游戲引擎提供了對(duì)虛擬人角色的支持,但該類引擎大多適用于民用仿真領(lǐng)域,對(duì)大地型、虛擬儀表、分布式仿真等的支持不夠?qū)I(yè),或多或少無法滿足軍事仿真的要求,在軍事仿真中應(yīng)用較少。軍事仿真一般采用Vega Prime, Mantis 等專業(yè)虛擬現(xiàn)實(shí)引擎,但目前這類引擎不直接支持虛擬人仿真,雖然可以通過OpenGL、 Direct3D等進(jìn)行底層編程實(shí)現(xiàn),但各虛擬現(xiàn)實(shí)引擎提供的接口和參考資料很少,自己編程實(shí)現(xiàn)存在理論復(fù)雜、坐標(biāo)系統(tǒng)難統(tǒng)一、渲染環(huán)境易破壞等諸多問題;另一種最常用的方法是采用DI-GUY等虛擬人仿真軟件,但采用DI-GUY進(jìn)行開發(fā)存在諸多缺陷,如系統(tǒng)封裝復(fù)雜, 很難掌握其底層運(yùn)動(dòng)控制技術(shù);DI-GUY5.0以后版本對(duì)人物模型進(jìn)行了加密,不便于擴(kuò)展其模型庫(kù),使其滿足用戶需要;該軟件使用flt、obj等格式的模型,這些模型格式不能保存骨骼綁定信息,只能采用關(guān)節(jié)動(dòng)畫技術(shù)實(shí)現(xiàn)虛擬人動(dòng)畫,運(yùn)動(dòng)時(shí)各關(guān)節(jié)連接部位的網(wǎng)格易出現(xiàn)分離和破裂現(xiàn)象,很難形成較逼真的動(dòng)作;另一個(gè)致命缺陷是DI-GUY虛擬人手指沒有關(guān)節(jié),沒法完成手指動(dòng)作?,F(xiàn)有虛擬人仿真技術(shù)的另一個(gè)缺陷是通用性問題。各種內(nèi)置支持虛擬人仿真的引擎一般都有自己獨(dú)特的虛擬人仿真技術(shù),有專用的模型格式,它們的虛擬人生成、控制和動(dòng)作形成技術(shù)各不相同,針對(duì)某一引擎中生成的動(dòng)作沒法用于驅(qū)動(dòng)其它虛擬人仿真系統(tǒng)。甚至同一軟件不同版本之間也存在很大差異,如DI-GUY4. 3采用數(shù)組存儲(chǔ)各關(guān)節(jié)運(yùn)動(dòng)數(shù)據(jù), 而DI-GUY5. 0以后采用矩陣存儲(chǔ)運(yùn)動(dòng)數(shù)據(jù),原有DI-GUY4. 3控制方法完全失效,只能全部重寫代碼;這樣就造成開發(fā)人員必須花大量時(shí)間學(xué)習(xí)各種引擎的虛擬人仿真技術(shù),況且還有大量的引擎自身并不提供虛擬人仿真功能,等等,這些因素增加了虛擬人開發(fā)的難度和工作量,限制了虛擬人仿真的發(fā)展和工程實(shí)現(xiàn)。

發(fā)明內(nèi)容
本發(fā)明的目的是克服上述已有技術(shù)的不足,提供一種基于骨骼動(dòng)畫原理的通用虛擬人仿真技術(shù),該技術(shù)可以在各類視景引擎的虛擬環(huán)境中生成虛擬人,實(shí)現(xiàn)動(dòng)畫模型和動(dòng)作數(shù)據(jù)的重用,方便代碼在各引擎之間移植,并通過對(duì)骨骼動(dòng)畫原理的適當(dāng)改進(jìn),實(shí)現(xiàn)了傳統(tǒng)骨骼動(dòng)畫不能完成的逆序動(dòng)作推進(jìn)、動(dòng)作數(shù)據(jù)實(shí)時(shí)重寫等功能。為了達(dá)到上述目的,本發(fā)明的技術(shù)解決方案是基于骨骼動(dòng)畫原理的通用虛擬人仿真技術(shù)由虛擬人渲染引擎(1)、幾何模型和動(dòng)作數(shù)據(jù)導(dǎo)出插件O)、骨骼動(dòng)畫模型生成模塊C3)三部分組成,其中幾何模型和動(dòng)作數(shù)據(jù)導(dǎo)出插件將虛擬人模型及動(dòng)作數(shù)據(jù)從3dsmax、Blender等軟件中導(dǎo)出為骨骼動(dòng)畫模型所支持的幾何模型和動(dòng)作數(shù)據(jù),骨骼動(dòng)畫模型生成模塊將幾何模型、動(dòng)作數(shù)據(jù)及紋理等打包成骨骼動(dòng)畫模型,最后用虛擬人渲染引擎將骨骼動(dòng)畫模型在仿真系統(tǒng)的虛擬環(huán)境中渲染出來。本發(fā)明所述的通用虛擬人仿真技術(shù)與以往技術(shù)相比有如下突出的實(shí)質(zhì)性特點(diǎn)和顯著進(jìn)步1、原理方面。本技術(shù)采用改進(jìn)的骨骼動(dòng)畫原理,可以實(shí)現(xiàn)動(dòng)作的逆序推進(jìn)、關(guān)節(jié)動(dòng)作數(shù)據(jù)的實(shí)時(shí)重寫等功能,生成的動(dòng)作生動(dòng)逼真,可以實(shí)現(xiàn)各種細(xì)膩的動(dòng)作效果,且動(dòng)作可控性有所提高。2、平臺(tái)適應(yīng)性。以往技術(shù)一般只與某一引擎緊密結(jié)合,只能在某一引擎中生成虛擬人,而本技術(shù)可以與各類引擎結(jié)合,具有廣泛的平臺(tái)適應(yīng)性。3、可擴(kuò)展性。用戶可根據(jù)自身需要定制虛擬人模型和動(dòng)作。4、代碼可移植性。對(duì)核心代碼進(jìn)行了深度封裝,基于OpenGL和Direct3D圖形API 的虛擬人渲染引擎都使用了相同的函數(shù)名,不需進(jìn)行修改就可以將代碼在各個(gè)引擎環(huán)境間進(jìn)行移植。本發(fā)明涉及的幾何模型和動(dòng)作數(shù)據(jù)導(dǎo)出插件可以在建模軟件中將虛擬人的幾何模型和動(dòng)作序列數(shù)據(jù)分別導(dǎo)出。幾何模型包含虛擬人的網(wǎng)格數(shù)據(jù)、紋理信息、骨骼綁定信息等;虛擬人動(dòng)作使用頂點(diǎn)混合技術(shù)實(shí)現(xiàn),頂點(diǎn)代表了皮膚上的點(diǎn),骨骼皮膚綁定算法是骨骼動(dòng)畫中的關(guān)鍵算法,它決定著骨骼如何帶動(dòng)皮膚運(yùn)動(dòng),導(dǎo)出插件支持剛性綁定算法和柔性綁定算法。剛性綁定算法的基本思想是皮膚上每個(gè)點(diǎn)僅由一塊骨骼控制;柔性綁定算法中每個(gè)皮膚點(diǎn)可以受多個(gè)骨骼的影響,并由多個(gè)骨骼的位置來確定皮膚點(diǎn)最終的位置,虛擬人皮膚上的頂點(diǎn)位置通過其所屬骨頭集及相應(yīng)權(quán)值計(jì)算得到,也就是說由骨骼驅(qū)動(dòng)皮膚上頂點(diǎn)運(yùn)動(dòng)。虛擬人渲染引擎是該通用虛擬人仿真技術(shù)的核心,該引擎封裝了虛擬人模型渲染及動(dòng)作生成控制的全部函數(shù),可在視景引擎中完成虛擬人的渲染任務(wù),其特殊之處在于該引擎針對(duì)OpenGL和Direct3D兩種圖形API分別封裝了相應(yīng)函數(shù),使其具備在各類虛擬環(huán)境中生成自身渲染環(huán)境的功能,該特性使得本虛擬人仿真技術(shù)可以廣泛適于目前主流虛擬現(xiàn)實(shí)引擎及游戲引擎。虛擬人渲染引擎可以實(shí)現(xiàn)通用化的原理如下隨著計(jì)算機(jī)圖形學(xué)的不斷發(fā)展,多數(shù)圖形API逐漸消失,基本只剩下OpenGL和Direct3D兩種圖形API,目前主流的商業(yè)版或開源版虛擬現(xiàn)實(shí)引擎和游戲引擎都基于OpenGL或Direct3D圖形API,因此引擎只需提供對(duì) OpenGL或Direct3D圖形API的支持,生成相應(yīng)的渲染環(huán)境,就可以通過讀取骨骼動(dòng)畫模型中的幾何數(shù)據(jù)和動(dòng)作數(shù)據(jù),并使用相應(yīng)的圖形API將虛擬人在虛擬環(huán)境中渲染出來。骨骼動(dòng)畫模型只是一種存儲(chǔ)虛擬人幾何模型和動(dòng)作數(shù)據(jù)的文件,它與圖形API沒有任何關(guān)系, 骨骼動(dòng)畫模型完全能夠?yàn)镺penGL或Direct3D圖形API共用,因此可以實(shí)現(xiàn)一種適用于各類平臺(tái)、各類API的通用虛擬人仿真技術(shù),該技術(shù)可以使用同樣的模型、同樣的開發(fā)流程和控制參數(shù)在各類引擎中生成虛擬人。即使是一個(gè)普通的應(yīng)用程序,也可以通過為其生成渲染環(huán)境而加入虛擬人。與以往虛擬人仿真軟件相比,該虛擬人渲染引擎還提供如下功能1、逆序推進(jìn)虛擬人動(dòng)作功能。傳統(tǒng)骨骼動(dòng)畫只能播放已在建模軟件中事先建好的動(dòng)作,如果某個(gè)動(dòng)作有一個(gè)相反的動(dòng)作,則需要為該相反的動(dòng)作建立一個(gè)新的動(dòng)作,如果使用本引擎提供的逆序推進(jìn)虛擬人動(dòng)作功能,則可以逆序播放已有動(dòng)作達(dá)到生成相反動(dòng)作的目的;對(duì)一些循環(huán)往復(fù)類動(dòng)作,也可以使用該技術(shù)實(shí)現(xiàn)。2、多個(gè)虛擬人協(xié)調(diào)動(dòng)作,某些動(dòng)作如抬一個(gè)箱子需要多人協(xié)調(diào)完成,本引擎通過統(tǒng)一多個(gè)虛擬人的建??臻g、剪裁空間和的動(dòng)作推進(jìn)參數(shù),達(dá)到多人協(xié)調(diào)動(dòng)作的目的;3、動(dòng)作數(shù)據(jù)重寫功能。傳統(tǒng)的骨骼動(dòng)畫技術(shù)只能播放已制作好的動(dòng)作數(shù)據(jù),虛擬人各關(guān)節(jié)的運(yùn)動(dòng)將嚴(yán)格按照已有動(dòng)作數(shù)據(jù)驅(qū)動(dòng),本引擎通過提供控制接口,用戶可以實(shí)時(shí)改變相應(yīng)關(guān)節(jié)的旋轉(zhuǎn)矩陣,從而實(shí)現(xiàn)新的動(dòng)作,該功能使用戶可以在程序中實(shí)時(shí)生成新的虛擬人動(dòng)作。使用該虛擬人渲染引擎進(jìn)行虛擬人渲染的流程包括生成渲染環(huán)境、初始化虛擬人、確定虛擬人縮放比例、確定虛擬人位置、繪制虛擬人、推進(jìn)仿真時(shí)間及恢復(fù)渲染環(huán)境等7 個(gè)步驟,其具體流程如附圖1所示。1、生成合適的虛擬人渲染環(huán)境,并保存視景引擎當(dāng)前的渲染狀態(tài)。本發(fā)明的突出特點(diǎn)是廣泛的平臺(tái)適應(yīng)性,但各個(gè)引擎的實(shí)現(xiàn)各不相同,一般都對(duì)OpenGL或Direct3D進(jìn)行了二次封裝或擴(kuò)展,它們的光源、材質(zhì)、坐標(biāo)系等都與OpenGL或Direct3D默認(rèn)對(duì)象有所不同。比如VEGA或Vega Prime這兩個(gè)常用的虛擬現(xiàn)實(shí)引擎,它們都有自己的光源系統(tǒng),它們的光源無法影響用戶直接使用OpenGL命令繪制的對(duì)象;它們的坐標(biāo)系統(tǒng)與OpenGL默認(rèn)坐標(biāo)系統(tǒng)相差90度,等等。因此為了保證本虛擬人仿真技術(shù)的通用性和渲染的正確性,在進(jìn)行虛擬人渲染工作前,必須先建立適合本虛擬人仿真技術(shù)的渲染環(huán)境,包括合適的投影變換、光源等,并保存當(dāng)前的渲染狀態(tài),以便虛擬人渲染完成后恢復(fù)視景引擎的渲染狀態(tài)。2、初始化虛擬人,指定其動(dòng)作序列及動(dòng)作開始幀。當(dāng)首次將虛擬人模型載入內(nèi)存時(shí),根據(jù)骨骼動(dòng)畫模型存放的路徑及模型名將模型載入,并指定模型的動(dòng)作序列號(hào)及開始幀;當(dāng)虛擬人模型已載入內(nèi)存后,如果需要改變動(dòng)作,只需指定模型動(dòng)作序列號(hào)及開始幀就可以完成動(dòng)作切換。3、確定虛擬人在虛擬環(huán)境中的縮放比例。虛擬人的建??臻g與最終的虛擬環(huán)境在縮放比例、位置、坐標(biāo)系方向都可能不同,此步驟用來指定虛擬人在虛擬環(huán)境中的大小,通過控制虛擬人的縮放比例,使虛擬人的大小與虛擬空間中其它對(duì)象相協(xié)調(diào)。4、確定虛擬人在虛擬環(huán)境中的位姿數(shù)據(jù)。該步驟用來消除虛擬人在建模坐標(biāo)系中的坐標(biāo)與最終渲染的虛擬環(huán)境之間的位置及姿態(tài)差異,使虛擬人定位到虛擬空間的合適方位。5、繪制虛擬人模型。該步驟將虛擬人模型在虛擬環(huán)境中渲染出來。6、推進(jìn)仿真時(shí)間。為了使虛擬人完成動(dòng)畫,必須推進(jìn)虛擬人的仿真時(shí)間,該時(shí)間與整個(gè)仿真系統(tǒng)的時(shí)間有一定關(guān)系,但一般不能直接使用系統(tǒng)仿真時(shí)間推進(jìn)虛擬人動(dòng)作。虛擬人動(dòng)作的默認(rèn)幀率在生成骨骼動(dòng)畫模型時(shí)已確定,一般為每秒30幀,但不同計(jì)算機(jī)性能不同,從而實(shí)際幀率各不相同,可能在目標(biāo)計(jì)算機(jī)上虛擬人動(dòng)作速度與項(xiàng)目開發(fā)時(shí)希望的速度相差較大而造成動(dòng)作失真。因此應(yīng)綜合考慮虛擬人動(dòng)作的實(shí)際幀率和整個(gè)仿真系統(tǒng)的幀率,當(dāng)系統(tǒng)幀率低于或高于某一閾值時(shí),動(dòng)態(tài)調(diào)整虛擬人的仿真時(shí)間推進(jìn)速度,從而改變虛擬人動(dòng)作的速度。7、恢復(fù)視景引擎的渲染狀態(tài)。虛擬人渲染完成后,必須重置位置姿態(tài)和縮放設(shè)置,并將視景引擎的渲染狀態(tài)恢復(fù)到在第1步保存的引擎渲染狀態(tài),防止因?yàn)殇秩咎摂M人而破壞整個(gè)渲染環(huán)境,從而導(dǎo)致出現(xiàn)不可預(yù)料的渲染結(jié)果。本發(fā)明涉及的骨骼動(dòng)畫模型生成模塊用來配置模型生成參數(shù)并最終生成骨骼動(dòng)畫模型。骨骼動(dòng)畫模型生成模塊可以配置參數(shù)包括源文件存放目錄、生成的骨骼動(dòng)畫模型文件名、模型縮放比例、身體組、衣服組、動(dòng)作組等,可以設(shè)定動(dòng)作數(shù)據(jù)文件及動(dòng)作幀率,改變動(dòng)作組中動(dòng)作的排序、增刪動(dòng)作等,并最終生成骨骼動(dòng)畫模型。該模塊會(huì)在當(dāng)前目錄下生成一個(gè)配置文件,將各項(xiàng)參數(shù)保存到配置文件,模塊啟動(dòng)時(shí)自動(dòng)搜索當(dāng)前工作目錄中是否存在配置文件,當(dāng)發(fā)現(xiàn)配置文件時(shí)則自動(dòng)載入。


圖1虛擬人渲染流程2虛擬人碰撞檢測(cè)包圍盒示意3人機(jī)工效分析開發(fā)流程圖
具體實(shí)施例方式為了更好地理解與實(shí)施,下面給出具體實(shí)施例說明本發(fā)明的工程應(yīng)用。實(shí)施例1 將本虛擬人仿真技術(shù)應(yīng)用于某型飛機(jī)虛擬地勤維護(hù)訓(xùn)練系統(tǒng)中,該項(xiàng)目使用Vega Prime視景引擎開發(fā)。其具體實(shí)施情況如下1、制作虛擬人模型和動(dòng)作。制作虛擬人模型,為其綁定骨骼,并制作虛擬人動(dòng)作, 并使用導(dǎo)出插件分別導(dǎo)出為幾何模型和動(dòng)作數(shù)據(jù);2、使用骨骼動(dòng)畫模型生成模塊將幾何模型、動(dòng)作數(shù)據(jù)等打包成骨骼動(dòng)畫模型;3、在Vega Prime中生成虛擬人渲染環(huán)境,并用虛擬人渲染引擎OpenGL版本的控制函數(shù)將虛擬人添加到虛擬環(huán)境中;4、使用鍵盤或搖桿等人機(jī)交互設(shè)備控制虛擬人的移動(dòng),用鼠標(biāo)點(diǎn)擊飛機(jī)上的操作部件,根據(jù)選中的操作部件判斷是否控制虛擬人啟動(dòng)某個(gè)動(dòng)作,某個(gè)動(dòng)作完成后虛擬人原地站好。實(shí)施例2 將本虛擬人仿真技術(shù)應(yīng)用于某型艦艇設(shè)計(jì)中的動(dòng)態(tài)人機(jī)工效分析,該項(xiàng)目基于Direct3D開發(fā),用來分析艦艇建筑對(duì)艦員頭部安全性的威脅。傳統(tǒng)JACK等人機(jī)工效學(xué)分析軟件一般只用來完成靜態(tài)分析,無法勝任動(dòng)態(tài)分析任務(wù),因此采用該通用虛擬人仿真技術(shù)實(shí)現(xiàn)動(dòng)態(tài)人機(jī)工效學(xué)的分析。其主要開發(fā)流程如下1、在計(jì)算機(jī)中設(shè)計(jì)完成艦艇的三維模型后,將艦艇模型導(dǎo)入虛擬環(huán)境中,并為艦艇建立精確的碰撞檢測(cè)包圍盒。2、生成虛擬人渲染環(huán)境,使用虛擬人渲染引擎Direct3D版本的控制函數(shù)將虛擬人模型加入虛擬環(huán)境。3、為虛擬人頭部、手臂、軀干等建立碰撞檢測(cè)包圍盒,控制虛擬人在艦艇上走動(dòng)。4、當(dāng)檢測(cè)到頭部與艦艇的發(fā)生碰撞時(shí),則應(yīng)檢查碰撞處的高度設(shè)計(jì)是否合理。附圖2為虛擬人的碰撞檢測(cè)包圍盒示意圖,附圖3為虛擬人應(yīng)用于動(dòng)態(tài)人機(jī)工效分析的開發(fā)流程圖。
權(quán)利要求
1.基于骨骼動(dòng)畫原理的通用虛擬人仿真技術(shù),包括虛擬人渲染引擎(1)、幾何模型和動(dòng)畫數(shù)據(jù)導(dǎo)出插件O)、骨骼動(dòng)畫模型生成模塊C3)三個(gè)部分。
2.根據(jù)權(quán)利要求1所述的基于骨骼動(dòng)畫原理的通用虛擬人仿真技術(shù),其特征在于根據(jù)骨骼動(dòng)畫原理,實(shí)現(xiàn)一種廣泛適用于基于OpenGL或Direct3D圖形API的各類虛擬現(xiàn)實(shí)引擎和游戲引擎的通用虛擬人仿真技術(shù)。
3.根據(jù)權(quán)利要求1所述的基于骨骼動(dòng)畫原理的通用虛擬人仿真技術(shù),其特征在于對(duì)骨骼動(dòng)畫原理進(jìn)行了適當(dāng)改進(jìn),使骨骼動(dòng)畫可以實(shí)現(xiàn)如下功能3. 1逆序推進(jìn)虛擬人動(dòng)作功能; 3. 2多個(gè)虛擬人協(xié)調(diào)動(dòng)作功能; 3. 3虛擬人動(dòng)作數(shù)據(jù)實(shí)時(shí)重寫功能。
全文摘要
本發(fā)明公開了一種基于骨骼動(dòng)畫原理的通用虛擬人仿真技術(shù),它包括虛擬人渲染引擎(1)、幾何模型和動(dòng)畫數(shù)據(jù)導(dǎo)出插件(2)、骨骼動(dòng)畫模型生成模塊(3)三個(gè)部分。該技術(shù)的特征是可以為基于OpenGL或Direct3D的各類虛擬現(xiàn)實(shí)引擎或游戲引擎添加虛擬人。其開發(fā)流程是開發(fā)者使用建模軟件制作虛擬人模型和動(dòng)作,通過導(dǎo)出插件(2)導(dǎo)出幾何模型和動(dòng)畫數(shù)據(jù),并使用骨骼動(dòng)畫模型生成模塊生成骨骼動(dòng)畫模型,最終在仿真程序中使用虛擬人渲染引擎(1)將虛擬人渲染出來。
文檔編號(hào)G06T13/40GK102214365SQ20111020157
公開日2011年10月12日 申請(qǐng)日期2011年7月11日 優(yōu)先權(quán)日2011年7月11日
發(fā)明者喬勇軍, 孫濤, 曹建, 李德棟, 歐陽(yáng)中輝, 謝曉方, 趙維, 陳青華 申請(qǐng)人:中國(guó)人民解放軍海軍航空工程學(xué)院
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1