Upload
buffy-gardner
View
153
Download
0
Embed Size (px)
DESCRIPTION
사원수 (Quaternion). 이창희 ([email protected]). 사원수. 회전을 사용할 때 행렬 대신 사용하곤 하는 수학적 개념 행렬에 비해 저장 공간이 적다 회전들의 결합에 필요한 연산이 적다 보간을 할 때 좀 더 매끄러운 애니메이션이 가능. 사원수의 성질. q = w+xi+yj+zk = s + v i 2 =j 2 =k 2 =-1, ii=jj=kk=-1 ij=-ji=k, jk=-kj=i, ki=-ik=j q1+q2 = (s 1 +s 2 ) + (v 1 +v 2 ) - PowerPoint PPT Presentation
Citation preview
2
사원수
회전을 사용할 때 행렬 대신 사용하곤 하는 수학적 개념
행렬에 비해 저장 공간이 적다회전들의 결합에 필요한 연산이 적다보간을 할 때 좀 더 매끄러운 애니메이션이 가능
3
사원수의 성질 q = w+xi+yj+zk = s + v i2=j2=k2=-1, ii=jj=kk=-1
ij=-ji=k, jk=-kj=i, ki=-ik=j
q1+q2 = (s1+s2) + (v1+v2) q1q2 = s1s2 – v1 v• 2+s1v2+s2v1+v1*v2
q*~q = ~q*q = q q =• |q|2 = q2
norm(q) = q*~q
q-1 = ~q/norm(q) = ~q/q2
q*q-1 = 1
4
사원수 성질
(q1*q2)*q3 = q1*(q2*q3)q1*q2 != q2*q1~(~q) = q~(q1*q2) = ~q2 * ~q1~(q1+q2) = ~q1+~q2
5
회전 P’= qPq-1
준동형 (homomorphism) 사상– Φ는 길이 ,각도 ,축이 모두 보존된다 .– Φ(P1)Φ(P2)=Φ(P1P2)– Φq(P) = qPq-1
– Φq(P1)Φq(P2)=qP1q-1 qP2q-1=qP1qP2q-1=Φq(P1P2) qPq-1 =(s+v)P(s-v)=(s2-t2)P+2stA*P+2t2(A P)A•
– P’=cosθP+(A*P)sinθ+(A P)A(1-cosθ)•( 임의의 축에 대한 회전 공식 ) 과 비교
– s2-t2=cosθ,2st=sinθ,2t2=1-cosθ
축 u( 단위벡터 ) 을 중심으로 회전q = cos(θ/2) + sin(θ/2)u
6
회전
사원수 q 에 임의의 scalar 를 곱한 것 역시 q 와 동일한 회전
qPq-1을 3x3 행렬로 변환
7
Euler오일러각을 이용하여 사원수 만들기
– 오일러각은 x축 ,y 축 ,z 축을 중심으로 회전을 정의qroll =cos(θr/2)+sin(θr/2)i+0j+0kqpitch =cos(θp/2)+0i+sin(θp/2)j+0kqyaw =cos(θy/2)+0i+0j+sin(θy/2)k
– Q = qrollqpitchqyaw
사원수를 이용하여 오일러각 알아내기– 사원수를 회전 행렬로 변환– sinθr=-r31– tanθp=r31/r33– tanθy=r21/r11
8
보간선형보간q(t) = (1-t)q1 + tq2
사원수 공간은 구면공간의 성격을 띄는데 선형보간을 하게되면 오차가 생긴다
정규화를 통해 보정가능
9
보간
구면 선형 보간 일반적으로 선형보간으로 오차가 그리 크다고 보지 않기에 애니메이션을 구현할 때같은 경우 선형보간을 주로 이용
10
Gimbal Lock yaw(y 축 회전각 ) 을 90 로 고정시키고 pitch(x 축 ), roll(z
축 ) 회전을 실시했을 경우 pitch 와 roll 회전이 같은 방향으로 회전하게 됨 ( 이것이 gimbal lock)
오일러 각으로 회전을 표현할경우 전체 회전행렬 = z 축 회전행렬 * y 축 회전행렬 * x 축 회전행렬 과 비슷한 순서의 회전행렬 ( 회전행렬의 순서는 사용자 임의로 바꿀수 있으며 이때 gimbal lock 되는 축도 그에 따라 바뀜 ) 을 사용하게 되는데 이때 yaw 각을 90 도로 회전시켰을 경우 ( 회전행렬의 순서상 ) x 축이 -z 축이 되어 x 축회전을 하나마 나한 상태가 됨
사원수의 회전을 이용하여 문제를 해결
11
참고 Eric Lengyel, Mathematics fo 3d game programming & co
mputer graphics, charles river media, chapter 3 http://g-matrix.pe.kr/feature/3dengine/quaternion.h
tm Physics for Game Developers( 사원수연산 ) http://www.cc.gatech.edu/grads/z/Howard.Zhou/micell
aneous/links_local/EularQuats.htm http://www.gamedev.net/reference/articles/article10
95.asphttp://www.gpgstudy.com/gpgiki/MathTemplate