3D模型初探(人體運動學)

2021-08-05 19:36:24 字數 1864 閱讀 6348

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

[email protected]

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多年前...