Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 2. Geometrical Methods - Quaternions -  전자공학 / Networked Virtual Computing Lab/ 조성업.

Similar presentations


Presentation on theme: "Chapter 2. Geometrical Methods - Quaternions -  전자공학 / Networked Virtual Computing Lab/ 조성업."— Presentation transcript:

1 Chapter 2. Geometrical Methods - Quaternions -  전자공학 / Networked Virtual Computing Lab/ 조성업

2 Networked Virtual Computing Lab. 2 Quaternion Algebra - 1  Quaternion definition  q = w + xi + yj + zk  Where w, x, y, z are real numbers  i 2 = j 2 = k 2 = -1  ij = -ji = k  jk = -kj = i  ki = -ik = j  q 0 * q 1 = ( w 0 w 1 - x 0 x 1 - y 0 y 1 - z 0 z 1 ) + (w 0 x 1 + x 0 w 1 + y 0 z 1 + z 0 y 1 ) i + (w 0 y 1 - x 0 z 1 + y 0 w 1 + z 0 x 1 ) j + (w 0 z 1 + x 0 y 1 - y 0 x 1 + z 0 w 1 ) k  교환 법칙 성립 안됨  ij = -ji = k / jk = -kj = i / ki = -ik = j  q 0 * q 1  q 1 * q 0

3 Networked Virtual Computing Lab. 3 Quaternion Algebra - 2  Conjugate of Quaternion  q * = (w + xi + yj + zk ) * = w - xi - yj – zk  ( q * ) * = q  ( pq) * = q * p *  Norm of Quaternion  Real value  N(q) = N(w + xi + yj + zk) = w 2 + x 2 + y 2 + z 2  N(q) = N(q * )  N(pq) = N(p)N(q)

4 Networked Virtual Computing Lab. 4 Quaternion Algebra - 3  Multiplicate Inverse of Quaternion  Notation: q  q -1  Property: q q -1 = q -1 q = 1  Inverse: q -1 = q * / N(q) Quaternion 을 real-value scalar 로 나눌 때에는 w, x, y, z 각각을 나눈다.  ( q -1 ) -1 = q / ( pq ) -1 = q -1 p -1  Unit Quaternion  Quaternion q for which N(q) = 1  q = q -1 / qq = q  q = cos  + u sin  u = u 0 i + u 1 j +u 2 k = (u 0,u 1,u 2 ) u has length 1 u u = -1

5 Networked Virtual Computing Lab. 5 Relationship of Quaternions to Rotations - 1  Unit Quaternion & Rotation  unit quaternion q = cos  + u sin  u = u 0 i + u 1 j +u 2 k = (u 0,u 1,u 2 ) u has length 1 u u = -1  v = v 0 i + v 1 j + v 2 k = (v 0, v 1, v 2 )  then in R (v) = q v q * … R (v) 는 3D vector v 를 3 차원 축 u 에 대해서 2  만큼 회전시키는 함수가 된다.  R (v) 가 rotation function 이라는 것을 증명하려면 다음 4 가지를 증명해야만 한다. R (v) is a 3D-Vector R (v) is a length-preserving function R (v) is a linear transformation R (v) does not have an reflection component

6 Networked Virtual Computing Lab. 6 Rotation Matrix about unit-length axis  from Angle & Axis to Rotation Matrix   = angle of rotation / U = unit-length axis of rotation  I = Identity matrix  S =  R = I + sin  S + (1 – cos  )S 2 0 -u 2 u 1 u 2 0 -u 0 -u 1 u 0 0

7 Networked Virtual Computing Lab. 7 Conversion from Quaternion to Rotation Matrix  from Quaternion to Rotation Matrix  Solution: w, x, y, z  find  & U  R = I + sin  S + (1 – cos  )S 2  Some identities 2sin 2 (  /2) = 1- cos  sin(  ) = 2sin(  /2)cos(  /2)  From above two identities … 2wx = (sin  )u 0 / 2wy = (sin  )u 1 / 2wz = (sin  )u 2 2x 2 = ( 1 – cos  )u 0 2 / 2xy = (1 - cos  )u 0 u 1 / 2xz = (1 - cos  )u 0 u 2 2y 2 = ( 1 – cos  )u 1 2 / 2yz = (1 - cos  )u 1 u 2 2z 2 = ( 1 – cos  )u 2 2  Right-hand side of all above equations are terms in R = I + sin  S + (1 – cos  )S 2  replacing them yields … R = 1-2y 2 – 2z 2 2xy + 2wz 2xz – 2wy 2xy – 2wz 1-2x 2 – 2z 2 2yz + 2wx 2xz + 2wy 2yz – 2wx 1-2x 2 – 2y 2

8 Networked Virtual Computing Lab. 8 Quaternion Interpolation - 1  Interpolation  3D animation 을 위해서는 Quaternion 간의 interpolation 이 필요  Quaternion 의 곱셈은 행렬의 곱셈보다 빠르며, quaternion 의 interpolation 을 이용하면 매끄러운 animation 구현 가능  일반적인 interpolation 공식  q(t) = f 0 (t)q 0 + f 1 (t)q 1 ( 0  t  1 )  f 0 (t), f 1 (t) : scalar function  f 0 (0) = 1, f 0 (1) = 0  f 1 (0) = 0, f 1 (1) = 1

9 Networked Virtual Computing Lab. 9 Quaternion Interpolation - 2  LERP(Linear-interpolation)  lerp(t, q 0, q 1 ) = (1-t)q 0 + tq 1 = t(q 1 – q 0 ) + q 0  Interpolation 의 결과로 나타나는 quaternion 의 Norm(=magnitude) 가 달라진 다. 즉, magnitude 가 보존되지 않는다.  Rotation 에 사용하기 위해서는 Interpolation 의 결과로 나타나는 quaternion 의 Norm(=magnitude) 을 계속 scaling 해 주어야 한다.  속도는 빠르지만 곡선 형태의 매끄러운 animation 을 구현하기는 어렵다.

10 Networked Virtual Computing Lab. 10 Quaternion Interpolation – 3  SLERP(Spherical Linear Interpolation)  3D unit vector: sphere 상의 point 를 표현 가능  Unit quaternion: hyper-sphere 상의 point 를 정의 가능  Hyper-sphere 상의 두 quaternion 을 interpolation 해서 매끄러운 곡선 형태의 animation 구현 가능  수식  slerp(t, q 0, q 1 ) = [q 0 sin(  (1-t)) + q 1 sin(  )]/sin(  )  = q 0 와 q 1 사이의 각도 q 0, q 1 을 4 차원 vector 로 보고 내적을 이용해  계산 Magnitude 가 보존된다.  slerp(t, q 0, q 1 ) = q 0 (q 0 -1 q 1 ) t

11 Networked Virtual Computing Lab. 11 Quaternion Interpolation - 4  SLERP  장점 : 매끄러운 3D animation  단점 : 둘 이상의 quaternion 을 연속으로 interpolation 할 경우 각각의 제어점에 서 방향이 갑자기 꺽이는 듯한 경로가 생길 수 있음  Spherical Cubic Interpolation  양 끝점에서 좀 더 부드러운 곡선 경로 생성  SQUAD(t; p, q, a, b) = slerp( 2t(1-t); slerp(t; p, q), slerp(t; a, b) ) Interpolation 결과는 p~q 를 연결하는 호를 따르지 않고 a~b 를 잇는 호를 향한 곡선을 따른다. p q a b p q a b

12 Networked Virtual Computing Lab. 12 Quaternion Interpolation - 5  Spline Interpolation  N 개의 quaternion 이 있다고 할 때 {q n, a n, b n } (n=0, 1, 2, … N-1)  Interpolation 은 다음과 같이 이루어지게 된다. Sn(t) = squad(t, q n, q n+1, a n, b n+1 )  매끄러운 interpolation 결과를 얻기 위한 a n, b n 은 다음과 같다. a n = b n = q n exp[-(log(q n -1 q n-1 ) + log(q n -1 q n+1 ) ) / 4]


Download ppt "Chapter 2. Geometrical Methods - Quaternions -  전자공학 / Networked Virtual Computing Lab/ 조성업."

Similar presentations


Ads by Google