2017-05-17 35 views
0

我想知道是否有可能定義一個對象的旋轉不是圍繞自身,而是圍繞任意的原點,有效地消除了將XYZ位置向量傳遞給GPU的需要。因此,我們可以預先計算一個四元數來代替XYZ位置+ XYZW四元數,而這個四元數只能單獨定義對象的位置和旋轉?是否可以使用四元數圍繞任意原點旋轉對象?

+0

@WestLangley,你爲什麼刪除了OpenGL和GLSL標籤? –

+0

因爲問題不在於這些話題。 – WestLangley

+0

我很驚訝和困惑。如果它不是關於GLSL或OpenGL的,那爲什麼它更多關於three.js? –

回答

2

純四元體是不可能的。四元數只有四個自由度。如果您使用它進行轉換,旋轉角度可以是3度,縮放比例可以是1度。四元數可以提供更多的東西。然而,可以表示翻譯(並且因此也可以表示關於任意軸的旋轉)。這帶來了另外四個數字的存儲成本,通常這是不值得的麻煩。雙四元數的優點是剛體變換可以用一個很好的代數背景以一種統一的方式表示。它通常用於動畫以一致的方式在多個變換之間進行插值。

在大多數情況下,雙四元數的優點不會超過其複雜性。因此,大多數情況下使用簡單的偏移矢量更爲合理。

+0

目標是減少在應用程序中發送給GPU的向量數量,因爲它們中有大量的向量,所以雙四元數會挫敗我正在考慮的目的。感謝您的澄清。 –