5/29/2006

電腦動畫中的旋轉問題

在三度空間中 我們使用向量來描述位移 而旋轉的描述就複雜許多 旋轉是一種特殊的空間變換 在MAYA中有兩種方式計算旋轉量 一個是Euler Rotation(歐拉旋轉) 另一個是Quaternion Rotation(四元組)

Euler Rotation的計算是依據XYZ三個獨立的轉軸以及旋轉的順序來定義旋轉 因為轉軸獨立 所以表現方式簡單 但也因為如此 一次依序只計算一個轉軸 因而有Gimbal Lock或是Flipping的缺陷 即 在某些情況下 3個軸中的2個軸會重疊 使得旋轉失去一個軸向的自由度 導致任意一個旋轉軸可以用不只一個Euler Angle來表示 這樣造成中間張計算的嚴重偏差

當你想要精確地控制旋轉量時 Euler Rotation是個很好的方式 他也提供關鍵張平滑以及各種不同的tangent模式使用 在大部分狀況下 或是你常常使用graphic editor來編輯動畫 那麼使用歐拉旋轉

Quaternion Rotation是描述三度空間的旋轉的另一種方式 跟Euler Rotation比起來 它可以算出兩個關鍵張間最簡短的旋轉值 所以提供了非常平滑的中間張 因為儲存了物件一次旋轉的所有量值變化 而非像Euler計算各個軸XYZ的旋轉 因此不會有Gimbal Lock或是Flipping的問題 但是它在編輯上困難 不像Euler Rotation有彈性

what the hell you are taking about?

No comments: