회전과 Quaternion HyoungSeok Kim Multimedia Workshop 회전과 Quaternion HyoungSeok Kim
Euler Angles (e.g. roll, pitch, yaw) Rotation Matrices Axis and angle Unit Quaternions Dongeui University
Euler Angle 표현법 정의 총 24 가지 방법 (12 fixed axes, 12 relative axes) 임의의 회전을 표현하기 위한, 좌표축을 중심으로 한 일련의 세 회전각 총 24 가지 방법 (12 fixed axes, 12 relative axes) 모든 회전이 임의의 회전을 표현할 수 있는 것은 아니다 (최소한 2개의 축이 필요) Dongeui University
Rotation Matrices about axes Rotation about x axis by χ Rotation about y axis by φ Rotation about z axis by Dongeui University
일반적인 Rotation Matrix for i = j Otherwise 각 축과 나란한 단위 벡터들은 서로 수직인 단위 벡터로 변환된다: 오른손 좌표계를 사용하는 경우: det (R) > 0 for i = j Otherwise Dongeui University
Character Animation 게임 등에서 캐릭터의 동작 애니메이션이 많이 사용됨 Tomb Raider 3 (Eidos Interactive) The Legend of Zelda (Nintendo) Final Fantasy VIII (SquareSoft) Dongeui University
캐릭터 동작을 빠르게 하기 위한 방법 Quaternion vs. 3D Transformation Matrices 회전 합성: Quat(회전)/Vec(이동) pair 가 더 효율적 공간활용도도 좋음 (7 floats 행렬은 12 floats) point/vector 변환: 행렬이 효율적 실용적인 적용: 회전이 연속적으로 나오는 부분에는 Qaternion 사용 points / vectors / triangles 의 변환에는homogeneous transformation 행렬 사용 Dongeui University
Quaternion Interpolation과 카메라 제어 SLERP Introduction to the Game Camera Structuring Camera Movement Problems and Solutions Enhancements Thoughts Dongeui University
Interpolation 문제 두개의 “keyframe” 변환이 주어진 경우 두 keyframe 간의 중간 변환을 생성하는 문제 부드러운 동작 생성을 위해 필요 두 개의 회전 사이의 interpolate 수행 Euler angle 을 사용하는 경우? 각각의 각도를 interpolate Interpolation 수행한 값이 예측과 다름 “Long way around” Dongeui University
Quaternion Interpolation LERP(Q0,Q1,t) = Q0 + t(Q1-Q0) Quaternion에서 주어진 연산 사용 4개의 원소를 interpolate 중간 값들이 rotation이 아님 Normalization 필요 Revised linear interpolation: Normalization 수행 BetterLERP(Q0,Q1,t) = normalize(LERP(Q0,Q1,t)) interpolation 비율(rate of interpolation)이 변함 Dongeui University
Quaternion Interpolation: SLERP Spherical Linear intERPolation Q0 와 Q1 사이에 전형으로 interpolate 하는 대신, 단위 초구(hypersphere)의 표면 위에서 interpolation 수행 초구(hypersphere)위의 두 점을 잇는 호(arc)를 따라 Interpolate 두 quaternion 사이의 최소각 θ를 알 필요 smooth interpolation (동일한 비율로 interpolate) Θ가 최소각일 경우, 두 quaternion 사이의 최소 회전 세개 이상의 quaternion이 주어진 경우 spline interpolation도 수행 가능 Dongeui University