[發(fā)明專利]一種骨骼動畫兼容處理方法在審
| 申請?zhí)枺?/td> | 201810476030.8 | 申請日: | 2018-05-17 |
| 公開(公告)號: | CN108648252A | 公開(公告)日: | 2018-10-12 |
| 發(fā)明(設計)人: | 程正 | 申請(專利權)人: | 成都明鏡視覺科技有限公司 |
| 主分類號: | G06T13/40 | 分類號: | G06T13/40;G06T1/20 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 610041 四川省成都市*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 骨骼動畫 著色器 骨骼 兼容 兼容性處理 紋理映射 運算 傳遞 | ||
本發(fā)明提供一種骨骼動畫兼容處理方法,通過cpu運算好骨骼動畫數(shù)據(jù)然后提交給gpu,當骨骼數(shù)所需要的uniform變量小于剩余著色器的uniform變量個數(shù)時,就采用uniform方式提交給著色器。當骨骼數(shù)所需要的uniform變量大于剩余著色器uniform變量個數(shù)時,通過紋理映射的方式傳遞給著色器。采用本發(fā)明方法能夠解決大量骨骼的骨骼動畫運行在gpu上,實現(xiàn)骨骼動畫兼容性處理。
技術領域
本發(fā)明涉及計算機圖形技術領域,更具體地說,涉及一種骨骼動畫兼容處理的實現(xiàn)方法。
背景技術
骨骼動畫是計算機動畫技術的一個重要組成部分,在計算機輔助動畫電影制作和各類廣告制作中一直發(fā)揮著重要的作用。
隨著計算機硬件能力的提升和渲染技術的提升,計算機繪制出來的圖像越來越逼真,不僅僅在傳統(tǒng)的動畫上面有進一步的發(fā)展,3D動畫電影也越來越受到觀眾的喜愛?,F(xiàn)在使用最廣泛的關鍵幀動畫就是骨骼動畫。在骨骼動畫中,動畫模型由兩個部分來表示:一個部分是形成層次的一系列骨胳,即骨架(skeleton),每一個骨骼數(shù)據(jù)都包含其自身的動畫數(shù)據(jù);另一個部分是蒙在骨架上的皮膚(skin),即網(wǎng)格模型,用于提供動畫繪制所需要的幾何模型和紋理材質(zhì)信息。通過對骨架進行動畫模擬,再利用骨胳控制皮膚變形就實現(xiàn)了骨骼動畫。骨骼動畫與關鍵幀動畫相比占用空間較小,因為它不需要存儲每一幀的各個頂點的數(shù)據(jù),而只需存儲每一幀的骨骼(骨骼數(shù)量相對較少),并且多個不同的皮膚可以通過使用相同的骨骼共享相同的動畫。骨骼動畫在蒙皮時通常有兩種計算方式,一種是通過cpu運算好骨架動畫數(shù)據(jù),然后再通過cpu來進行頂點變換來改變頂點的位置,最后再將變換后的頂點提交給gpu來渲染。另一種是通過cpu運算好骨架動畫數(shù)據(jù)后直接提交給gpu,gpu直接對原始網(wǎng)格的頂點緩沖對象(vbo)在著色器(shader)中進行變化位置后直接繪制在屏幕上。后者不僅有效的利用的gpu的算力來加速了蒙皮的過程,并且不用重復提交不同姿態(tài)(pose)網(wǎng)格頂點數(shù)據(jù)給gpu,大大降低了cpu與gpu通訊所帶來的開銷。然而后者也并不是沒有缺點,雖然不用像前者那種每次都去提交大量頂點數(shù)據(jù),但是要提交骨骼數(shù)據(jù)(相對較小)。雖然頂點著色器可以同過uniform標示符的變量來接收骨骼數(shù)據(jù),但是現(xiàn)代gpu通常都會有uniform變量的容量限制(通常是256*4個浮點精度數(shù))。然后骨骼數(shù)據(jù)中一個骨頭的數(shù)據(jù)就需要占據(jù)16個浮點精度數(shù),也就是說即使全部使用最多也就64根骨頭數(shù)據(jù)。然而實際渲染過程中著色器中還需要接收諸如燈光,材質(zhì)等等的的數(shù)據(jù)。所以真正能剩下的uniform變量少之又少(大概僅剩下1/3-1/2,依賴于材質(zhì)復雜度和燈光個數(shù),換算下來就是20-30根骨骼)。所以如何讓大量骨骼的骨骼動畫運行在gpu上就成了一個問題。
發(fā)明內(nèi)容
為了解決上述問題,本發(fā)明提供一種骨骼動畫兼容處理方法,通過cpu運算好骨骼動畫數(shù)據(jù)然后提交給gpu,如下步驟:
S1、根據(jù)cpu運算好的骨骼動畫數(shù)據(jù)判斷骨骼數(shù)所需要的uniform變量書是否小于剩余著色器的uniform變量個數(shù),如果是,轉(zhuǎn)到步驟S2;如果否,轉(zhuǎn)到步驟S3;
S2、直接采用uniform的方式將骨骼數(shù)提交給著色器;
S3、通過紋理映射的方式將骨骼數(shù)傳遞給著色器;
所述步驟S3中通過紋理映射的方式將骨骼數(shù)傳遞給著色器主要包括如下步驟:
S31、判斷硬件是否支持浮點精度紋理,如果是,轉(zhuǎn)到步驟S32;如果否,轉(zhuǎn)到步驟S33;
S32、當硬件支持浮點精度紋理時,將骨骼數(shù)進行更新,并將更新后的骨骼數(shù)據(jù)依次填充進紋理當中,然后和著色器中的紋理采樣器綁定,頂點著色器通過頂點緩沖對象中的骨骼id數(shù)映射成紋理的坐標,紋理采樣器再根據(jù)紋理坐標依次往后采樣4個像素(一個像素有rgba4個浮點精度通道),總共所采樣處理的16像素通道值就是一個骨骼所需的16個浮點精度數(shù)據(jù);
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于成都明鏡視覺科技有限公司,未經(jīng)成都明鏡視覺科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810476030.8/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





