2017-07-26 59 views
1

我有使用矩陣運行許多骨骼動畫的代碼,我想將它轉換爲雙四元數,以獲得更好的性能。雙四元數和任意比例

我只有一個問題 - 我找不到如何處理任意比例的好資源。

我不太明白骨骼層次結構中的尺度是如何進行的。

假設對於骨架中的每個節點,我都有其局部雙四元數(旋轉+平移)和一個三維矢量來進行縮放,我該怎麼處理它們以合併縮放?

回答

0

骨骼動畫和尺度,特別是非均勻尺度,是一個棘手的問題。

使用骨骼層次結構的標準實現方法,每個骨骼都有一個矩陣,尺度簡單地傳播給兒童,這通常被認爲是不想要的行爲 - 傳播不均勻的尺度會導致兒童骨骼的剪切和其他變形,蒙皮中的文物。出於這個原因,它通常會在子矩陣上得到「補償」 - 例如,請參閱此概念的Autodesk Maya implementation

爲了更好地描述將非傳播比例集成到雙四元數中,幾個academic papers by Ladislav Kavan提供了很多細節。他還在YouTube上發表了關於雙四元數的講座。

+0

我確實需要傳播尺度。我的代碼實現了支持任意傳播尺度的3D模型格式,所以我沒有在這方面做出選擇(雖然尺度部分,特別是它的非均勻部分,實際上並沒有太多用處)。 – user2503048

+0

在這種情況下,不幸的是,您無法使用對偶四元數和尺度向量來表示整個變換 - 這些變量中沒有足夠的自由度來表示剪切和傾斜,這將是非均勻縮放傳播的結果通過轉型層次。 –