專利名稱:基于紋理數(shù)據(jù)的復(fù)雜骨骼動(dòng)畫數(shù)據(jù)傳輸及其實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種骨骼動(dòng)畫數(shù)據(jù)處理方法,尤其是涉及一種基于紋理數(shù)據(jù)的復(fù)雜骨骼動(dòng)畫數(shù)據(jù)傳輸及其實(shí)現(xiàn)方法。
背景技術(shù):
骨骼動(dòng)畫相對(duì)于其他動(dòng)畫方法具有占用空間小的優(yōu)點(diǎn),但其代價(jià)是計(jì)算量的增力口,因此易導(dǎo)致繪制效率降低。隨著可編程圖形處理器技術(shù)在計(jì)算機(jī)圖形處理領(lǐng)域的廣泛研究與應(yīng)用,提出了基于可編程圖形處理器來實(shí)現(xiàn)骨骼動(dòng)畫的方法,采用先進(jìn)的可編程處理管線,借助可編程圖形處理器的強(qiáng)大計(jì)算能力,分擔(dān)了骨骼動(dòng)畫中的頂點(diǎn)更新的計(jì)算任 務(wù),從而大大提升了骨骼動(dòng)畫的繪制效率。當(dāng)前普遍存在的問題是,受限于硬件能力及硬件平臺(tái)的差異,骨骼動(dòng)畫的數(shù)據(jù)從CPU到GPU的傳輸受到很大限制,無法實(shí)現(xiàn)復(fù)雜骨骼動(dòng)畫的3D渲染。
發(fā)明內(nèi)容
本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種實(shí)現(xiàn)成本低、可傳遞大量的骨骼變換矩陣數(shù)據(jù)的基于紋理數(shù)據(jù)的復(fù)雜骨骼動(dòng)畫數(shù)據(jù)傳輸及其實(shí)現(xiàn)方法。本發(fā)明的目的可以通過以下技術(shù)方案來實(shí)現(xiàn)一種基于紋理數(shù)據(jù)的復(fù)雜骨骼動(dòng)畫數(shù)據(jù)傳輸及其實(shí)現(xiàn)方法,其特征在于,包括采用GPU的紋理緩沖來存儲(chǔ)與傳輸3D骨骼動(dòng)畫數(shù)據(jù),并通過規(guī)定紋理保存骨骼動(dòng)畫數(shù)據(jù)的格式,在CPU端和GPU端按統(tǒng)一格式進(jìn)行骨骼動(dòng)畫數(shù)據(jù)的編碼和解碼,實(shí)現(xiàn)了大規(guī)模骨骼動(dòng)畫數(shù)據(jù)從CPU到GPU的傳輸處理。該方法具體包括以下步驟a)將進(jìn)行骨骼動(dòng)畫渲染的GPU shader程序,加載到系統(tǒng)中,并進(jìn)行編譯;b)初始化3D環(huán)境;c)把要渲染的骨骼動(dòng)畫的3D數(shù)據(jù)裝載進(jìn)來,并創(chuàng)建對(duì)應(yīng)的網(wǎng)格數(shù)據(jù)、紋理數(shù)據(jù)、骨架數(shù)據(jù)的3D資源;d)根據(jù)GPU硬件提供的紋理緩沖的最大值,構(gòu)建適合當(dāng)前骨骼動(dòng)畫使用的專用GPU紋理緩沖;e)使用CPU對(duì)內(nèi)存中的骨骼動(dòng)畫數(shù)據(jù)進(jìn)行編碼,并傳輸?shù)接刹襟Ed)構(gòu)建的專用GPU紋理緩沖中;f)調(diào)用GPU的shader程序,并執(zhí)行;通過shader的采樣器,獲取由步驟f)編碼的骨骼動(dòng)畫的紋理數(shù)據(jù),然后按設(shè)定方式進(jìn)行解碼;g)在GPU中使用解碼后的骨骼動(dòng)畫數(shù)據(jù)進(jìn)行骨骼動(dòng)畫的3D渲染。所述的步驟b)中的初始化3D環(huán)境具體為根據(jù)硬件顯卡及所使用的圖形API初始化進(jìn)行3D骨骼動(dòng)畫渲染的軟件環(huán)境;并判斷所使用的shader程序是否能初始化,若不能,將逐步降低其級(jí)別進(jìn)行初始化,直到成功。
所述的適合當(dāng)前骨骼動(dòng)畫使用的專用GPU紋理緩沖為GPU硬件提供的紋理緩沖最大值的70% 90%,最優(yōu)為80%。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)I)可傳遞大量的骨骼變換矩陣數(shù)據(jù);2)實(shí)現(xiàn)成本低,本發(fā)明適用于較低硬件顯卡配置的復(fù)雜骨骼動(dòng)畫的3D渲染;3)突破傳輸使用常規(guī)的GPU的shader常量傳遞骨骼動(dòng)畫的限制。
圖I為本發(fā)明的流程圖;圖2為本發(fā)明實(shí)現(xiàn)的框圖。
具體實(shí)施例方式下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說明。實(shí)施例圖I為本發(fā)明的具體軟件控制流程。通過CPU與GPU的配置完成骨骼動(dòng)畫數(shù)據(jù)的編碼與解碼。以下為圖I具體實(shí)施的幾大步驟I、編寫好在GPU在運(yùn)行shader程序,并調(diào)試通過;2、初始化3D環(huán)境,如果在初始過程中由于所要求的shader model級(jí)別不夠,則自動(dòng)逐步降低硬件的shader model級(jí)別,直至取得一個(gè)滿足條件的硬件環(huán)境;接著裝載骨骼動(dòng)畫數(shù)據(jù)到內(nèi)存和CPU中;3、根據(jù)硬件顯卡的條件,判定紋理緩沖的規(guī)模,直至找到一個(gè)最合理的GPU紋理緩沖大小,用于下一步的骨骼動(dòng)畫數(shù)據(jù)提交;4、把內(nèi)存中的骨骼動(dòng)畫數(shù)據(jù)利用CPU進(jìn)行約定模式的編碼,并提交到由上一步構(gòu)建的紋理緩沖中;然后,通知GPU執(zhí)行一開始編寫的骨骼動(dòng)畫shader程序;由GPU的shader程序按約定模式對(duì)專用的骨骼動(dòng)畫紋理緩沖數(shù)據(jù)進(jìn)行解碼;5、在GPU中利用解碼后的骨骼動(dòng)畫數(shù)據(jù)進(jìn)行骨骼直通車的3D渲染。如圖2所示,本發(fā)明的軟硬件模塊包括圖形顯卡硬件、基礎(chǔ)3D數(shù)學(xué)庫、不同平臺(tái)的統(tǒng)一圖形API抽象模塊、CPU的數(shù)據(jù)裝載模塊、CPU的骨骼動(dòng)畫數(shù)據(jù)的編碼器、GPU的骨骼動(dòng)畫解碼器。
權(quán)利要求
1.一種基于紋理數(shù)據(jù)的復(fù)雜骨骼動(dòng)畫數(shù)據(jù)傳輸及其實(shí)現(xiàn)方法,其特征在于,包括采用GPU的紋理緩沖來存儲(chǔ)與傳輸3D骨骼動(dòng)畫數(shù)據(jù),并通過規(guī)定紋理保存骨骼動(dòng)畫數(shù)據(jù)的格式,在CPU端和GPU端按統(tǒng)一格式進(jìn)行骨骼動(dòng)畫數(shù)據(jù)的編碼和解碼,實(shí)現(xiàn)了大規(guī)模骨骼動(dòng)畫數(shù)據(jù)從CPU到GPU的傳輸處理。
2.根據(jù)權(quán)利要求I所述的一種基于紋理數(shù)據(jù)的復(fù)雜骨骼動(dòng)畫數(shù)據(jù)傳輸及其實(shí)現(xiàn)方法,其特征在于,該方法具體包括以下步驟 a)將進(jìn)行骨骼動(dòng)畫渲染的GPUshader程序,加載到系統(tǒng)中,并進(jìn)行編譯; b)初始化3D環(huán)境; c)把要渲染的骨骼動(dòng)畫的3D數(shù)據(jù)裝載進(jìn)來,并創(chuàng)建對(duì)應(yīng)的網(wǎng)格數(shù)據(jù)、紋理數(shù)據(jù)、骨架數(shù)據(jù)的3D資源; d)根據(jù)GPU硬件提供的紋理緩沖的最大值,構(gòu)建適合當(dāng)前骨骼動(dòng)畫使用的專用GPU紋理緩沖; e)使用CPU對(duì)內(nèi)存中的骨骼動(dòng)畫數(shù)據(jù)進(jìn)行編碼,并傳輸?shù)接刹襟Ed)構(gòu)建的專用GPU紋理緩沖中; f)調(diào)用GPU的shader程序,并執(zhí)行;通過shader的采樣器,獲取由步驟f)編碼的骨骼動(dòng)畫的紋理數(shù)據(jù),然后按設(shè)定方式進(jìn)行解碼; g)在GPU中使用解碼后的骨骼動(dòng)畫數(shù)據(jù)進(jìn)行骨骼動(dòng)畫的3D渲染。
3.根據(jù)權(quán)利要求2所述的一種基于紋理數(shù)據(jù)的復(fù)雜骨骼動(dòng)畫數(shù)據(jù)傳輸及其實(shí)現(xiàn)方法,其特征在于,所述的步驟b)中的初始化3D環(huán)境具體為根據(jù)硬件顯卡及所使用的圖形API初始化進(jìn)行3D骨骼動(dòng)畫渲染的軟件環(huán)境;并判斷所使用的shader程序是否能初始化,若不能,將逐步降低其級(jí)別進(jìn)行初始化,直到成功。
4.根據(jù)權(quán)利要求2所述的一種基于紋理數(shù)據(jù)的復(fù)雜骨骼動(dòng)畫數(shù)據(jù)傳輸及其實(shí)現(xiàn)方法,其特征在于,所述的適合當(dāng)前骨骼動(dòng)畫使用的專用GPU紋理緩沖為GPU硬件提供的紋理緩沖最大值的70% 90%。
全文摘要
本發(fā)明涉及一種基于紋理數(shù)據(jù)的復(fù)雜骨骼動(dòng)畫數(shù)據(jù)傳輸及其實(shí)現(xiàn)方法,包括采用GPU的紋理緩沖來存儲(chǔ)與傳輸3D骨骼動(dòng)畫數(shù)據(jù),并通過規(guī)定紋理保存骨骼動(dòng)畫數(shù)據(jù)的格式,在CPU端和GPU端按統(tǒng)一格式進(jìn)行骨骼動(dòng)畫數(shù)據(jù)的編碼和解碼,實(shí)現(xiàn)了大規(guī)模骨骼動(dòng)畫數(shù)據(jù)從CPU到GPU的傳輸處理。與現(xiàn)有技術(shù)相比,本發(fā)明具有實(shí)現(xiàn)成本低、可傳遞大量的骨骼變換矩陣數(shù)據(jù)等優(yōu)點(diǎn)。
文檔編號(hào)G06T15/00GK102968815SQ20121051777
公開日2013年3月13日 申請日期2012年12月5日 優(yōu)先權(quán)日2012年12月5日
發(fā)明者林秀全, 張生言, 高小玲 申請人:上海創(chuàng)圖網(wǎng)絡(luò)科技發(fā)展有限公司