一。了解骨骼結構(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 線性插值就可以了,插值很複雜的演算法給我。。。謝謝了哈
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多年前...