一。了解骨骼結構(skeletal structures)和骨層級(bone hierarchies)
**如下:
骨骼從本質上來說應該是乙個n叉樹形結構。
frameroot->frame1->frame10
frame11
frame12
...
frame2
...
frame3
...
然後為了簡化處理:
利用變換將 n 叉樹轉換為2叉樹:
變換後為:
frameroot->frame1->childframe10
| frame12
| ...
brotherframe2
| | ...
brotherframe3
...
也就是下面這個理論:
乙個父骨僅僅有乙個子骨和乙個兄弟骨。
下面這個問題是如何給骨骼定位:
骨骼的位置是由它的變換矩陣(相對於初始位置)決定的:
而mesh決定了它的頂點座標。
模型:
class 骨骼;
因此有下面這個模板:
template frame
它的抽象層級很高.
給骨架下了這麼個定義:
1.有網格點 mesh
2.能進行變換
骨骼是有了,可是沒有顯示出它與其他骨骼的關係啊?
問題是「骨架」在**?
上面說過,骨架就是乙個二叉樹(由n叉樹變換過來)
class 骨架
下面考慮如何實現的問題:
乙個人體是乙個骨架:
腰盤骨 -----》根骨
頭骨-------》第一子骨
胸骨------》第一子骨的兄弟骨1
兩個胳臂骨--》第一子骨的兄弟骨2
兩個大腿骨-》第一子骨的兄弟骨3
首先:
所有的骨頭通過各種變換安裝到了人的骨架之上。
所以:
怎麼裝上去的呢?
在.x檔案中,專門儲存了這麼個矩陣:
d3dxmatrix matoriginal; // 從x檔案載入的原始變換矩陣
這個矩陣定位了骨骼的原始位置。
以後,所有的變換都要從它開始。
幸運的是,骨骼的模板中(上面的frame)已經有了個變換矩陣:
frametransformmatrix frametransformmatrix;
它表示乙個目前將要發生的變換。
而下面這個東西是累計變換矩陣:
d3dxmatrix matcombined; // 組合變換矩陣,用於儲存變換的骨骼矩陣
mathcombined
下面這個結構體讓骨骼能夠隨意扭動,飛奔!!!
struct d3dxframe_ex : d3dxframe
~d3dxframe_ex() }
到這裡,應該都很清楚了哈。至於如何便利骨架。二叉樹麼,如何讀取模型檔案,.x檔案,
很簡單了。。
不說了。。
動畫呢?
如何實現呢?關鍵幀技術?矩陣插值?
定義幀:(關鍵幀跟幀一樣)
class 幀
根據time,對骨架的matrix 線性插值就可以了,插值很複雜啊啊啊 啊 啊!!!不說了
下面是動畫:
animation
class 骨骼動畫 }
} 結束了。哈哈簡單吧。。。希望有人能把,根據time,對骨架的matrix 線性插值就可以了,插值很複雜的演算法給我。。。謝謝了哈
wa505@126.com
3d在除錯區輸出座標 3D人體姿態估計筆記
英文版 3d human pose estimation notes 人體姿態估計 估計人的關節點座標 回歸問題 多人姿態估計 人體姿態跟蹤 先獲取2d資訊,然後再 提公升 到3d姿態 直接用預訓練好的2d姿態網路,將得到的2d座標輸入到3d姿態估計網路中 得益於2d姿態估計較為成熟 缺點 為什麼要...
3d模型不能解組 3D列印服務
光敏樹脂3 列印服務 學生作品定做 小批量生產 3d列印 光固化光敏樹脂手板模型製作3d列印服務 3d列印 光 3d列印 光固化 sla 光敏樹脂 手板模型製作 3d列印服務 3d列印 光固化 sla 光敏樹脂 手板模型製作 3d列印服務 原理 sla成型 立體光刻技術 材料 abs光敏樹脂 強度和...
3D區域性光照模型
對於光照模型,從演算法理論基礎而言,可分為兩類,一類是基於物理理論的光照模型,另一種是基於經驗的模型。從使用角度而言,可分為全域性光照模型和區域性光照模型,本文簡單地介紹了幾種最基礎的經典區域性光照模型.1 區域性光照模型之lambert lambert光照模型是乙個非常簡單的模型,早在200多年前...