這半個(gè)月的收獲太大了,終于可以宣布拋棄其他任何的mesh格式了,因?yàn)槲彝耆珦碛辛俗约旱膍esh格式
主要分為三類
1.普通的mesh
2.室內(nèi)Portal 場(chǎng)景
3.骨骼動(dòng)畫
這三個(gè)類別做了個(gè)簡(jiǎn)單的整合,過兩天打算做成max工具面板的形式來導(dǎo)出,我想操作起來會(huì)更方便吧
開發(fā)體會(huì):
---------------------------------------
這段時(shí)間全力在攻克骨骼動(dòng)畫的導(dǎo)出,可真是不容易啊,找了很多資料,可以所是摸著石頭過河的
把x格式研究了一遍又一遍,max sdk 快翻爛了,max sdk里面的東西簡(jiǎn)直就可以“沒有天理”來形容
國(guó)外的資料也查的快瘋掉,好歹摸索出來了
目前的數(shù)據(jù)導(dǎo)出基本按照x格式的思路來組織,導(dǎo)出數(shù)據(jù)來計(jì)算的,拋棄了3dmax建議的骨骼空間本地頂點(diǎn)的插值計(jì)算方式
而采用了對(duì)原始蒙皮姿勢(shì)的mesh頂點(diǎn)直接按骨骼權(quán)重的方式進(jìn)行計(jì)算,就蒙皮姿勢(shì)的數(shù)據(jù)就讓我好找啊
原來還覺得x的格式太繁瑣復(fù)雜,現(xiàn)在回頭看看人家的數(shù)據(jù)組織的卻是非常的合理,導(dǎo)出的不僅僅只是動(dòng)畫
還可以用程序來控制里面的骨骼的變動(dòng),和物理引擎的結(jié)合就方便了,比如做一個(gè)從懸崖上掉下來的人,這可不是動(dòng)畫能解決的啦
目前的結(jié)構(gòu)應(yīng)該可以完好的和物理引擎進(jìn)行整合,這將做為以后的研究了
總體上來說我的骨骼插件主要用的是Physique modifer 來支持動(dòng)畫輸出的
目前支持能 max原始的bone骨骼,以及bip骨骼
原始的bone骨骼的IK還沒能導(dǎo)出,存在一點(diǎn)點(diǎn)誤差,不過bip骨骼運(yùn)用的更多一些,已經(jīng)完美支持了
所以IK計(jì)算的導(dǎo)出暫時(shí)也就放放了 (主要是IK的有些太復(fù)雜,還沒來得及搞懂 -_-! )
Floating 骨骼也暫時(shí)放放,要完善的內(nèi)容其實(shí)也還是很多的
有了Physique 修改器的經(jīng)驗(yàn),我想做個(gè)blend之類的morph動(dòng)畫導(dǎo)出插件應(yīng)該也沒問題了,比如面部表情什么的,以后有需要的時(shí)候再繼續(xù)吧
現(xiàn)在有了完整的一套自己的模型格式,以后要擴(kuò)展,比如在mesh里加入粒子動(dòng)畫,甚至是邏輯數(shù)據(jù)都不成問題了,根據(jù)需要去擴(kuò)展起來也相當(dāng)容易了
明天打算把渲染的部分給搞出來,準(zhǔn)備做個(gè)固定管線和 GPU 計(jì)算的 vertBlend shader 的兩個(gè)版本出來,這個(gè)很easy,預(yù)計(jì)明天上午就搞出來
還是老規(guī)矩,上圖
