2장 기술적 배경 지식 (Technical Background)

Slides:



Advertisements
Similar presentations
10-7 부동소수점 (Floating-Point) 계산  컴퓨터에서 숫자를 표기하는 방법  가수 (Fraction) : 부호화된 고정소수점 숫자 지수 (Exponent) : 소수점의 위치를 표시 ( 예 )10 진수 를 표기하면 Fraction Exponent.
Advertisements

1. 도형의 연결 상태 2. 꼭지점과 변으로 이루어진 도형 Ⅷ. 도형의 관찰 도형의 연결상태 연결상태가 같은 도형 단일폐곡선의 성질 연결상태가 같은 입체도형 뫼비우스의 띠.
수학을 통해 배우는 IT 과학의 세계 전북대: 한상언 교수.
Multimedia Programming 14: Image Warping 2
컴퓨터와 인터넷.
재료수치해석 HW # 박재혁.
대림대학교 2017년도 1학기 강의 왕보현 순서도와 스크래치 5주차 대림대학교 2017년도 1학기 강의 왕보현
Chapter09 CSS3 애니메이션 HTML5 Programming.
Two-Dimensional Geometric Transformations
Report #5 - due: 4/13 다음 10*5의 희소 행렬 A, B를 고려하라.
Entity Relationship Diagram
수치해석 6장 예제문제 환경공학과 천대길.
사원수 (Quaternion)
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
Error Detection and Correction
멀티미디어 시스템 (아날로그 이미지,신호를 디지털로 변환 방법) 이름 : 김대진 학번 :
Chapter2 기술적 배경 지식 구희모 권영우.
강원대학교 공과대학 제어계측공학과 2010년도 제2학기
11장. 1차원 배열.
Trigonometric Function
제4장 제어 시스템의 성능.
빅데이터 연구회 6주차 발표 주제 : 서포트 벡터 머신 통계학과 서태석.
프로그래밍 개요
피타고라스 정리 Esc.
군집 분석.
Quiz #7 다음 수들을 합병 정렬과 퀵 정렬 알고리즘을 이용하여 오름 차순으로 정렬하였을 때, 데이터 이동 회수를 각각 구하라. 여러분은 정렬 과정을 단계별로 보이면서 이동 회수를 추적해야 한다. 단, 퀵 정렬시에 피봇으로 배열의 왼쪽 첫 번째 원소를 선택한다. 5.
도형의 기초 3. 기본작도 삼각형의 작도 수직이등분선의 작도 각의 이등분선의 작도.
SEOUL NATIONAL UNIVERSITY OF SCIENCE & TECHNOLOGY
3D 프린팅 프로그래밍 01 – 기본 명령어 강사: 김영준 목원대학교 겸임교수.
볼링게임 시스템 3조 오지연, 손수경.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
Clipping 이진학.
4장 기하학적 객체와 변환 - 기하 1장 – 그래픽스 시스템과 모델 2장 – 그래픽스 프로그래밍 3장 – 입력과 상호작용
1차시: 낮과 밤이 생기는 원리 지구과학
COMPUTER ANIMATION (Key Frame Animation)
정다면체, 다면체와 정다각형, 다각형의 관계 한림초등 학교 영제 6학년 5반 송명훈.
8장. spss statistics 20의 데이터 변환
P 등속 직선 운동 생각열기 – 자동차를 타고 고속도로를 달릴 때, 속력계 바늘이 일정한 눈금을 가리키며 움직이지 않을 때가 있다. 이 때 자동차의 속력은 어떠할까? ( 속력이 일정하다 .)
SEOUL NATIONAL UNIVERSITY OF SCIENCE & TECHNOLOGY
웹사이트 분석과 설계 (화면 설계) 학번: 성명: 박준석.
CAD 실습 2013년 2학기.
균형이진탐색트리 이진 탐색(binary search)과 이진 탐색 트리(binary search tree)와의 차이점
Real time Interaction HyoungSeok Kim
MATLAB Image Processing Toolbox
Window, Viewport Window, Viewport.
2장. 일차원에서의 운동 2.1 평균 속도 2.2 순간 속도 2.3 분석 모형: 등속 운동하는 입자 2.4 가속도
서울대학교 컴퓨터공학부 김명수 행렬과 2차원 변환 서울대학교 컴퓨터공학부 김명수
벡터의 성질 - 벡터와 스칼라 (Vector and Scalars) - 벡터의 합 -기하학적인 방법
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
Chapter 1 단위, 물리량, 벡터.
DA :: 퀵 정렬 Quick Sort 퀵 정렬은 비교방식의 정렬 중 가장 빠른 정렬방법이다.
7장 전위이론 7.2 금속의 결정구조 7.4 인상전위와 나선전위 7.5 전위의 성질.
Word2Vec.
Word Embedding.
Chapter 1 단위, 물리량, 벡터.
행성을 움직이는 힘은 무엇일까?(2) 만유인력과 구심력 만유인력과 케플러 제3법칙.
3D 프린팅 프로그래밍 03 – 도형 회전 (손잡이컵 만들기) 강사: 김영준 목원대학교 겸임교수.
1. 정투상법 정투상법 정투상도 (1) 정투상의 원리
웹 사이트 분석과 설계 [디자인 리서치] 학번: 이름 : 홍지애.
7장 원운동과 중력의 법칙.
9 브라우저 객체 모델.
Chapter 7 – Curves Part - I
상관계수.
수치해석 ch3 환경공학과 김지숙.
2014년 가을학기 손시운 지도 교수: 문양세 교수님 행렬과 배열 2014년 가을학기 손시운 지도 교수: 문양세 교수님.
SEOUL NATIONAL UNIVERSITY OF SCIENCE & TECHNOLOGY
컴퓨터는 어떻게 덧셈, 뺄셈을 할까? 2011년 10월 5일 정동욱.
: 3차원에서 입자의 운동 방정식 제일 간단한 경우는 위치만의 함수 : 시간, 위치, 위치의 시간미분 의 함수
Ch. 11 각운동량(Angular Momentum)
Lecture #6 제 4 장. 기하학적 객체와 변환 (1).
Presentation transcript:

2장 기술적 배경 지식 (Technical Background) 2016 - 2학기 컴퓨터 애니메이션

2.1 공간과 변환(Spaces and Transformations) 자료의 변환 필요 물체의 데이터 합성 환경을 만들기 위하여 정의된 공간에서 세계 공간으로 변환 다음에는 물체의 데이터를 애니메이션을 만들기 위하여 시간의 함수로 변환 그래픽스에서 변환을 표현하는 주요한 방법은 4X4(4행 4열) 변환 행렬을 이용 회전, 이동, 확대/축소(scale)의 조합을 표현하는데 이용 좌표 공간은 왼손 혹은 오른손 좌표계로 정의 y y z x x z (a) (b) Z축은 왼손 좌표 시스템을 위해 페이지 안쪽으로 들어간다. Z축은 오른손 좌표 시스템을 위해 페이지 바깥쪽으로 나온다. 2016 - 2학기 컴퓨터 애니메이션

2.1.1 디스플레이 과정(Display Pipeline) 물체의 데이터를 원래의 정의된 공간에서 여러 공간들을 거쳐 최종적으로 화면상에 투영될 때까지 거치는 변환 물체 데이터는 조명을 효율적으로 계산하고, 가시 볼륨(view volume)에 맞게 그 데이터를 자르고, 투시 변환(perspective transformation)을 하기 위해서 다른 공간들로 변환된다 2016 - 2학기 컴퓨터 애니메이션

객체 공간의 데이터는 보통 원점의 주변에 놓여 있고 -1과 1사이와 같이 표준화된 한정된 범위 안에 있도록 만든다 객체 공간(object space) 객체가 원래 정의되었던 공간 객체 공간의 데이터는 보통 원점의 주변에 놓여 있고 -1과 1사이와 같이 표준화된 한정된 범위 안에 있도록 만든다 세계 공간(world space) 객체 공간으로부터 물체들을 모아 놓은 세계 공간으로 변환됨 객체 공간과 세계 공간은 보통 오른손 공간 보통 일련의 이동, 회전, 확대/축소 등으로 이루어짐 세계 공간은 광원과 관찰자가 있는 공간이며, 관찰자의 매개 변수는 위치(position), 관찰 방향(view direction), 상향 벡터(up vector)로 이루어진 방향성(orientation)을 포함 2016 - 2학기 컴퓨터 애니메이션

디폴트 방향성인 직립(straight up), 관찰 방향 관찰 방향은 look-from-point 라고도 알려진 관찰자나 눈의 위치(EYE)로부터 look-to-point 라고도 알려진 관심점으로의 벡터가 관찰 방향이 된다 상향 벡터 디폴트 방향성인 직립(straight up), 관찰 방향과 전역 y-축이 이루는 평면에 놓여 있고 관찰 방향과 수직인 벡터로 물체의 상향 벡터를 정의한다. 상향 벡터는 먼저 관찰 방향 벡터와 y-축의 외적(cross product)을 취하고, 그 벡터를 관찰 방향 벡터와 외적 시켜서 계산 가능(수식 2.1) w = COI – EYE 관찰 방향 벡터 u = w x (0, 1, 0) y-축과 외적 v = u x w 상향 벡터 2016 - 2학기 컴퓨터 애니메이션

디스플레이 과정의 표준으로 관측장도 정의되어야 함 관측장(field of view) 디스플레이 과정의 표준으로 관측장도 정의되어야 함 관측각(angle of view), 전방 절단 거리(hither clipping distance),후방 절단 거리(yon clipping distance) 가 필요 관측장의 정보는 투시투영(perspective projection)을 설정하는데 필요함 2016 - 2학기 컴퓨터 애니메이션

그림 2.2 물체 공간에서 세계 공간으로의 변환과 세계 공간에서의 관찰 절두체 (view frustrum) 2016 - 2학기 컴퓨터 애니메이션

관찰자의 위치, 관찰 방향, 관찰 각, 전방 절단 거리와 후방 절단 거리에 의해 만들어진다. 세계 공간에서의 보이는 영역 관찰자의 위치, 관찰 방향, 관찰 각, 전방 절단 거리와 후방 절단 거리에 의해 만들어진다. 세계 공간상의 6면체인 관찰 절두체(view frustum) 정의 투시 변화에 대한 준비로서, 데이터 점들 보통 세계 공간에서 눈 공간(eye space)으로 변환하며, 눈 공간에서 관찰자는 시선이 z-축과 일치하도록 z-축을 따라 자리를 잡아야 함 이 책에서는, 왼손 좌표계에서 관찰자가 양의 z-축 방향으로 보고 있다고 가정한다. 2016 - 2학기 컴퓨터 애니메이션

2016 - 2학기 컴퓨터 애니메이션

투시 변환 (Perspective transformation) 물체의 데이터를 눈 공간에서 이미지 공간으로 변환시킨다. 관찰자로부터 멀리 있는 점들은 가까이에 있는 점들보다 x, y 좌표축이 더 축소가 된다: 투시적 원근법 (Perspective foreshortening) https://en.wikipedia.org/wiki/Perspective_(graphical)#Types_of_perspective 시선은 관찰자에게서 나와서 가시 절두체(view frustum)로 퍼질 때에 갈라짐 이미지 평면이 가시 범위 보통 x, y 방향으로는 –1 에서 1까지 Z 방향으로는 0에서 1까지로 표준화 (혹은 –1에서 1까지) 2016 - 2학기 컴퓨터 애니메이션

이차 광선의 생성 없이 광선 추적을 하는 것을 말함 광선 투사법 (ray casting) 이차 광선의 생성 없이 광선 추적을 하는 것을 말함 광선이 관찰자 앞에 있는 가상 프레임버퍼의 픽셀좌표계에 기초를 둔 세계공간에서 만들어졌을 경우에는 [그림 2.4]와 같은 변환으로 단순화된다. 2016 - 2학기 컴퓨터 애니메이션

시간의 흐름에 따라 물체의 위치와 방향성을 조정 시간의 흐름에 따라 물체의 모양 조정 애니메이션 생성 방법 시간의 흐름에 따라 물체의 위치와 방향성을 조정 시간의 흐름에 따라 물체의 모양 조정 시간의 흐름에 따라 물체의 디스플레이 속성 조정 시간의 흐름에 따른 세계 공간에서의 관찰자의 관찰자의 위치와 방향 변환 위 변환들의 조합 2016 - 2학기 컴퓨터 애니메이션

2.1.2 동질 좌표계 (Homogeneous Coordinates)와 변환 행렬 3차원의 점을 4개의 원소를 갖는 벡터로 표현 점의 좌표는 4번째 성분으로 앞의 3개를 나눈 것 (수식 2.2) (수식 2.2) 세계 공간상의 한 점을 변환할 때, 4번째 성분이 1이 되는 것이 전형적임 즉 공간상의 점은 아주 단순한 동질 좌표계의 표현 (수식 2.3) (수식 2.3) 2016 - 2학기 컴퓨터 애니메이션

회전, 이동, 확대/축소의 기본 변환은 4x4 변환 행렬로 나타낼 수 있다. 텍스쳐 매핑과 조명을 계산하는데 중요한 계산 가능한 역(inverse)을 가질 가능성이 있다. 한 점은 4x1행렬(열 벡터라고도 함)로 표현되고 보통 왼편에 4x4 행렬을 곱하여 변환됨 (수식 2.4). (수식 2.4) 2016 - 2학기 컴퓨터 애니메이션

2.1.3 변환 합성하기: 변환 행렬 곱하기 변환을 정방 행렬로 표현하는 이유 중의 하나는 합성 변환을 하기 위해서 서로 곱할 수 있기 때문이다. 일련의 변환들을 여러 점에 같이 적용시킬 때 유용하다 (즉 계산적으로 효율적). 행렬의 곱셈에 결합 법칙은 성립하지만, 교환 법칙은 성립하지 않는다 (AB)C = A(BC) AB  BA (수식 2.6) (수식 2.7) 2016 - 2학기 컴퓨터 애니메이션

2.1.4 기본 변환 (Basic Transformations) 회전, 이동, 축척(균등, 비균등 포함) 유사 (affine) 변환 위 기본변환과 그들의 조합 https://en.wikipedia.org/wiki/Affine_transformation 각 점 벡터의 4번째 요소는 1이 되고 변환 행렬의 마지막 행은 [0 0 0 1]이 된다 2016 - 2학기 컴퓨터 애니메이션

(수식 2.8) (수식 2.9) 2016 - 2학기 컴퓨터 애니메이션

대각선의 첫 세 요소(수식 2.9에서 a, f, k)를 축척 인자(scale factor) S로 표시한 단위행렬이다 균등 축적 변환 대각선의 첫 세 요소(수식 2.9에서 a, f, k)를 축척 인자(scale factor) S로 표시한 단위행렬이다 균등 축척이 아닌 경우 한 점의 x-, y-, z- 좌표축에 독립적인 비율을 적용하여, 대각선에 따라 Sx, Sy와 Sz를 넣으면 된다 (수식 2.10) 2016 - 2학기 컴퓨터 애니메이션

균등 축척 (수식 2.10) 2016 - 2학기 컴퓨터 애니메이션

회전 (수식 2.12) (수식 2.13) (수식 2.14) 2016 - 2학기 컴퓨터 애니메이션

강체 변환 (Rigid transformation) 회전과 이동의 조합 위치와 방위만 변하고 물체의 공간적 용량은 변하기 않기 때문 균등 축척 https://en.wikipedia.org/wiki/Rigid_transformation 2016 - 2학기 컴퓨터 애니메이션

2.1.5 임의의 방위 표현 고정각 표현(Fixed Angle Representation) 주 축(principal axis) 주변의 일련의 회전으로 하는 것이다. 예를 들어, 비행기가 오른손 좌표계의 원점에 정의되어 있고 머리가 z-축으로, 상향벡터는 y-축의 양의 방향이고 비행기 중심이 (20, -10, 35), 머리가 (23, -14, 40), 상향벡터는 y-축의 일반 방향 (비행기의 중심, 비행기가 향하는 방향과 전역 y-축이 이루는 평면에 상향 벡터가 놓여 있음) (그림 2.5) 2016 - 2학기 컴퓨터 애니메이션

2016 - 2학기 컴퓨터 애니메이션

비행기의 물체 공간에서의 정의를 세계 공간의 위치와 방위로 변환 회전과 (20, -10, 35)로 이동하는 것으로 변환 분리 비행기의 방위벡터: (23-20, -14+10, 40-35) = (3, -4, 5) x-축 회전 (pitch)와 y-축 회전 (yaw)에 의해 원하는 결과를 얻음 비행기를 희망 방위로 두는 변환 결정 비행기의 상향 벡터는 y-축의 양의 방향 비행기의 희망 방위는 z-축의 양의 벡터 2016 - 2학기 컴퓨터 애니메이션

회전 행렬에 필요한 사인(sin)과 코사인(cos)의 각의 값은 주축들과 희망 방위 벡터와 관계를 고려하여 결정 Pitch (x-축 회전) 비행기의 머리의 x-축 회전을 위해 방위 벡터를 y-z 평면에 투사 (그림 2.6) 사인(sin)과 코사인(cos)의 각의 값은 투시 벡터와 그 벡터의 끝에서 z-축으로의 수선이 이루는 삼각형의 각으로 정할 수 있다. Yaw (y-축 회전) 피치 회전을 적용한 후에 방향 벡터의 y-축 회전은 x-z 평면상에서 (그림 2.7) 2016 - 2학기 컴퓨터 애니메이션

방향 코사인 행렬 (matrix of direction cosine) 희망 방위로의 변환을 표현하는 다른 방법 전역좌표계를 희망 방위의 단위좌표계로 변환 (그림 2.8) M: 변환 행렬 x-축 단위 벡터는 희망 방위 X-축으로 매핑 y-축 단위 벡터는 희망 방위 Y-축으로 매핑 z-축 단위 벡터는 희망 방위 Z-축으로 매핑 (수식 2.15) (수식 2.16) 2016 - 2학기 컴퓨터 애니메이션

2.1.6 행렬에서 변환을 구하기 일련의 회전과 이동을 표현하는 합성(compound) 변환 행렬에 대해서, 그 행렬로부터 각 개별 변환들의 집합을 구할 수 있는데, 이들을 같이 곱하면 원래의 합성 변환 행렬이 나온다 합성 변환은 세 개까지의 주축들의 회전(아니면 방향 코사인 행렬로 표현된 한 합성 회전)과 연달은 이동으로 이루어짐 4x4 변환 행렬의 마지막 행은, 만약 그 행렬이 투시 변환을 포함하지 않으면, 첫 세 요소가 0이고, 4번째 요소는 1이 된다 행렬의 마지막열의 첫 세 요소인 A14, A24, A34는 이동을 나타낸다 (수식 2.17) 2016 - 2학기 컴퓨터 애니메이션

2.1.7 디스플레이 파이프라인에서의 변환 물체 공간에서 세계 공간으로의 변환 간단한 경우에는 물체 데이터의 변환된 사본을 사용자가 지정한 일련의 회전, 이동, 축척을 실행하는 것 일반적으로 움직임을 만들기 위해서 시간에 따라 변경되는 변환을 나타내며 좀 더 복잡한 애니메이션 시스템의 경우에는 비선형 모양과 같이 임의의 복잡도를 가진 조작을 포함할 수도 있다. 세계 공간에서 눈 공간으로의 변환 투시 변환을 준비하기 위하여, 세계 공간의 모든 물체 데이터에 강체 변환(rigid transformation)을 시키며, 눈 공간에서, 관찰자가 원점에 위치하고, 관찰 벡터는 왼손 좌표계의 양의 z-축 방향으로, 상향 벡터는 양의 y-축 방향으로 정렬되도록 이 변환을 디자인한다 2016 - 2학기 컴퓨터 애니메이션

x와 y의 가시 범위를 [-1, 1]로 표준화하는 것이다. 투시적 나누기 투시 행렬 곱하기 투시 행렬의 곱셈은 투시 변환의 첫 부분이며, x-와 y-좌표를 z-좌표로 나누고, x와 y의 가시 범위를 [-1, 1]로 표준화하는 것이다. 투시적 나누기 투시 행렬의 곱으로 만들어진 각 점은, z에 의한 투시적 나누기를 나타내는, 단위가 아닌(nonunit) 네 번째 요소를 가지며, 각 점을 그 네 번째 요소로 나누는 것이 투시변환을 완성하는 것이다. 이미지 공간에서 화면 공간으로의 매핑 투시 변환의 결과는 가시 요소를 x와 y에서[-1, +1]의 범위로 매핑하며, 이 범위는 픽셀 좌표계의 사용자 지정 관찰 영역으로 매핑된다. 2016 - 2학기 컴퓨터 애니메이션

2.1.8 절삭 오차 (Round-Off Error) 고려 사항 물체가 애니메이션 될 때, 물체의 점들은 시간에 따라 시간의 함수로 연속적으로 변환하게 됨 물체의 세계 공간에서의 점들을 반복해서 수정하는 것임 세계 공간의 점들을 계속 변환시키면 일반적으로 절삭 오차(Round-off error)가 쌓이게 됨 물체 공간에서 세계 공간으로 변환을 수정해서 그 변환을 물체 공간에 다시 적용하는 방법 세계 공간 좌표에다 변환을 계속 적용하는 것보다 훨씬 낫다 변환 행렬을 반복 수정하면 마찬가지로 절삭 오차가 쌓이게 됨 가장 최선의 방법 각 응용에 대해 변환 행렬을 새롭게 하는 것 2016 - 2학기 컴퓨터 애니메이션

대부분의 오차 누적은 3x3 부분 행렬과 점의 x, y, x 좌표를 곱하는 연산 때문에 생기는 것 유사(affine) 변환 행렬 3x3 회전/축척 행렬 뒤에 이동이 따라오는 것 대부분의 오차 누적은 3x3 부분 행렬과 점의 x, y, x 좌표를 곱하는 연산 때문에 생기는 것 달이 지구를 공전하는 경우: 회전의 결과로 오차가 누적됨 지구의 중심이 원점이고, 달의 초기 데이터는 달의 중심이 원점에 정의되었다고 가정 달의 데이터가 (r, 0, 0) 로 변환 달이 지구 주위를 회전하는 애니메이션 애니메이션 각 프레임에 대해 델타 y-축 변환 적용, 델타는 한 프레임 시간에 움직이는 각 절삭오차가 세계공간에서의 물체의 점에 누적됨 2016 - 2학기 컴퓨터 애니메이션

2) 각 프레임에 대해 물체 공간의 점들을 세계 공간의 위치로 옮기는 변환 행렬을 증분해서 수정 절삭 오차가 변환행렬에 누적됨 동일 평면성은 보전되고 렌더링 결과는 손상되지 않음 3) 델타 값을 각의 변수의 누적값에 더해서 y-축 행렬을 만든다. 절삭 오차가 각의 변수에 누적되어서 원하는 것에서 벗어남 매 프레임에서의 변환 행렬에 오차가 누적되지 않음 동일 평면상에 있으면서 각을 보전하는 확실한 강체 변환 2016 - 2학기 컴퓨터 애니메이션

2016 - 2학기 컴퓨터 애니메이션

2016 - 2학기 컴퓨터 애니메이션

[그림 2.12] 각 프레임마다 회전 행렬을 새로 만들어 회전 y = 0 Repeat until (done) { // 다음을 반복 R = y-axis rotation matrix of ‘y’ degrees // R = y축으로 ‘y’ ° 회전 For each point P of the moon { // 달의 각점 P에 대해 P’ = R * P // R 적용 } record a frame of the animation // 애니메이션 프레임을 기록 y = y + 5 [그림 2.12] 각 프레임마다 회전 행렬을 새로 만들어 회전 2016 - 2학기 컴퓨터 애니메이션

표준정규화(Orthonormalization) 강제 변환을 나타내는 행렬의 행들은 서로 직교(perpendicular)하고 단위 길이를 가짐(orthonormal) 강제 변환 행렬은(일반적 균일 축척이 아니라고 가정) 특별한 성질을 가진 3x3 상 부분 행렬(upper submatrix)임 2016 - 2학기 컴퓨터 애니메이션

2.2 방위 표현(Orientation Representation) 컴퓨터 애니메이션의 논점 물체의 위치와 방위를 표현하는 최선의 방법을 결정하는 것과 움직임을 만들기 위해서 시간이 지남에 따라 표현된 변환을 어떻게 보간하는가 하는 것 사용자가 한 객체에 두 가지 변형된 상태를 지정하고 컴퓨터를 이용하여 중간 상태를 보간하여 애니메이션된 키 프레임 동작을 만드는 것 물체의 방위와 위치 표현에는 4x4 행렬 사용 이동을 보간하는 것은 간단하지만, 회전을 어떻게 보간할것인지는 애매함 y-축으로 +90도 회전과 y-축으로 -90도의 회전을 보간하면 무의미한 중간 행렬이 만들어 짐 2016 - 2학기 컴퓨터 애니메이션

Y축의 양의 방향으로 90° 회전 Y축의 음의 방향으로 90° 회전 방위 표현의 중간 [그림 2.14] 변환 행렬을 직접 보간하는 것이 무의미한 결과를 가져올 수 있다. 2016 - 2학기 컴퓨터 애니메이션

고정 각 표현법 (Fixed angle representation) 2.2.1 고정 각 표현법 고정 각 표현법 (Fixed angle representation) 실제로 고정된 축 주변으로 회전하는데 사용한 각”을 말하며, x-y-z와 같이 고정된 순서로 회전하는 것을 함축 순서 있는 세 고정 축에 대한 회전을 표현하는 순서 있는 세 매개 변수들의 집합으로 방위를 표현 다양한 순서로 회전을 시킬 순 있지만, 사실 세 좌표 축이 모두 사용되어야 할 필요는 없음 한 물체의 방위는 (10, 45, 90)과 같이 세 개의 각으로 주어진다. X축으로 10도, y축으로 45도, z축으로 90도 만큼 회전시켜 얻는다. Rz(90) Ry(45) Rx(10) 같이 표시. 회전 행렬은 오른쪽에서 왼쪽의 순서로 나타남. 2016 - 2학기 컴퓨터 애니메이션

Y축 90도 회전이 근본적으로 첫 회전축(X)을 세번째 회전축(Z)과 나란히 하도록 함. 짐벌락 (Gimbal lock) (0, 90, 0) 의 방위를 가지는 물체의 경우 Y축 90도 회전이 근본적으로 첫 회전축(X)을 세번째 회전축(Z)과 나란히 하도록 함. X축 주변으로 미세한 회전의 변화는 z축 주변의 미세한 회전의 변화를 가져옴. 2016 - 2학기 컴퓨터 애니메이션

Gimbal lock From Wikipedia, the free encyclopedia Gimbal lock occurs when the axes of two of the three gimbals needed to compensate for rotations in three dimensional space are driven to the same direction. For example, assume a sensing platform on an aircraft flying due north has its three gimbal axes mutually at right angles, i.e., Pitch, Roll and Yaw angles each zero. If the aircraft pitches up 90 degrees, the Pitch and Roll axes become parallel, and changes about Yaw can no longer be compensated for. This problem may be overcome by use of a fourth gimbal, driven so as to maintain a large angle between Pitch and Yaw gimbal axes. A comparison is to the use of Azimuth angles (Rotation clockwise from North) to define direction. At the poles (latitude 90° north or south), Azimuth becomes meaningless because the poles are singularity points, where all directions in terms of Azimuth are South (or North). 2016 - 2학기 컴퓨터 애니메이션

Gimbal A gimbal is a pivoted support that allows the rotation of an object about a single axis. A set of two gimbals, one mounted on the other with pivot axes orthogonal, may be used to allow an object mounted on the innermost gimbal to remain vertical regardless of the motion of its support. For example, shipboard compasses, stoves and even drink holders typically use gimbals to keep them upright with respect to the horizon despite the ship's pitching and rolling. Illustration of a simple two-axis gimbal set.In inertial navigation,as applied to ships and submarines, a minimum of three gimbals is needed to allow an Inertial Navigation System platform (stable table) to remain fixed in inertial space, compensating for the ship's Yaw (direction) as well as its Pitch and Roll. In this application, the Inertial Measurement Unit is equipped with three orthogonally mounted gyros to sense rotation about all axes in three dimensional space. The gyro outputs drive motors controlling the orientation of the three gimbals as required to maintain the orientation of the IMU. In turn, angular measurement devices, called "resolvers" mounted on the three gimbals provide the nine cosine values for the direction cosine matrix needed to orient the ship. 2016 - 2학기 컴퓨터 애니메이션

In aerospace inertial navigation systems, Gimbal lock may occur when vehicle rotation causes two of the three gimbal rings to align with their pivot axes in a single plane. When this occurs, it is no longer possible to maintain the sensing platform's orientation. To avoid this problem, a fourth gimbal must be employed, driven so as to keep the other three at substantial angles to each other. Modern practice is to avoid the use of gimbals entirely by mounting the inertial sensors directly to the body of the vehicle strapdown system and integrating sensed rotation and acceleration digitally using Quaternion methods to derive vehicle orientation and velocity. In spacecraft propulsion, rocket engines are generally mounted on a pair of gimbals to allow a single engine to vector thrust about both Pitch and Yaw. To control Roll, twin engines with differential Pitch or Yaw control signals are used to provide torque about the vehicle's Roll axis. 2016 - 2학기 컴퓨터 애니메이션

[그림 2.16] 고정 각 표현 2016 - 2학기 컴퓨터 애니메이션

데이터 점들에 먼저 적용된 x-축 회전 값을 바꾸면 비행기의 머리가 y-z 평면에서 다소 기울어지게 된다. y-축 회전 값을 바꾸면 x-축 주변으로 회전된 비행기가 y-z 평면에서 회전되어 나온 정도가 바뀜 마지막 적용되는 회전으로 z-축 회전 값을 바꾸면 이미 두 번 회전된 비행기가 z-축 주변으로 회전하는 정도가 바뀌는 것 y y x x z z 원래의 정의 (0, 90, 0) 방위 [그림 2.17] (0, 90, 0)의 고정각 표현 2016 - 2학기 컴퓨터 애니메이션

회전의 축은 전역 축이 아니고 그 물체에 붙어 있는 지역 좌표계 2.2.2 오일러 각 표현 회전의 축은 전역 축이 아니고 그 물체에 붙어 있는 지역 좌표계 오일러 각 표현법의 대표적인 예는 비행기의 [롤(roll), 피치(pitch), 요(yaw)] ([그림 2.19]) 각 시스템은 고정 각 시스템의 역순과 정확하게 일치하는데, 이것은 오일러 각의 어떤 시스템에 대해서도 성립 오일러 각 표현은 고정 각 표현과 정확하게 같은 장단점이 있음 2016 - 2학기 컴퓨터 애니메이션

[그림 2.20] 오일러 각 표현 2016 - 2학기 컴퓨터 애니메이션

오일러(Euler)의 회전정리(Euler’s rotation theorem) 2.2.3 각과 축(Angle and Axis) 오일러(Euler)의 회전정리(Euler’s rotation theorem) 한 방위는 다른 방위를 어떤 축에 대해 한번 회전을 하여 얻을 수 있다 어떤 방위든지 한 각과 한 벡터(x, y, z)로 된 4개의 요소로 표현될 수 있음 [그림 2.21] 오일러의 회전 정리는 한 객체의 어떠한 두 방위에 대해서, 한 방위는 임의의 한 축에 대해서 다른 방위를 한번 회전해서 만들어 진다는 것을 의미 2016 - 2학기 컴퓨터 애니메이션

두 축 사이의 각은 축을 정규화 한 것들의 내적의 역 코사인을 취하여 결정 회전의 축은 두 축의 외적으로 만들어짐 두 축 사이의 각은 축을 정규화 한 것들의 내적의 역 코사인을 취하여 결정 사원수(quaternions)에 의해 이 연산들이 쉽게 구현됨 [그림 2.22] (A1, θ1)와 (A2, θ2)의 축-각 표현의 보간 2016 - 2학기 컴퓨터 애니메이션

수(scalar) s와 3차원의 vector v로 나타나는 [s, v]를 말함 2.2.4 사원수(Quaternions) 사원수 4중의 실수 [s, x, y, z]나 또는 수(scalar) s와 3차원의 vector v로 나타나는 [s, v]를 말함 축과 각 표현법의 대안으로 같은 정보를 다른 모양으로 나타냄 일련의 회전을 모은 것을 한 개로 표현할 뿐 아니라 보간할 수 있는 형태 키프레임 애니메이션을 만들 때 중요 어떤 물체의 초기 물체 공간 정의에 대한 그 물체의 방위로 보거나, 한 물체의 정의에 적용할 회전 표현법으로 생각할 수 있음 일련의 연속된 회전을 한 개의 단순한 표현으로 나타내어 한 개의 합성변환을 물체 정의에 적용 2016 - 2학기 컴퓨터 애니메이션

기본 사원수 수학 (Basic Quaterion Math)  생략 사원수의 합 사원수 표현 [s1, v1] + [s2, v2] = [s1 + s2, v1 + v2]의 4요소 합 사원수의 곱 [s1, v1]  [s2, v2] = [s1s2 – v1  v2, s1  v2 + s2  v1 + v1 X v2] 작은 점 : 곱셈 큰 점 : 내적 X : 외적 예: 공간의 한 점 v는 [0, v] 로 표현됨 두 직교 벡터 (v1  v2 = 0) 의 사원수 곱은 그 두 벡터의 외적이 된다. [0, v1]  [0, v2] = [0, v1 X v2] iff v1  v2 = 0 2016 - 2학기 컴퓨터 애니메이션

(생략) 사원수 곱셈의 항등식(multiplicative identity): [1, (0, 0, 0)] [s, v ] [1, (0, 0, 0)] = [s, v ] 사원수의 역함수(inverse): [s, v]-1 q-1 = (1 / || q ||) 2  [s, -v] where || q || = 어떤 사원수 q 와 그 곱셈의 역원 q-1 를 곱하면 단위 길이 사원수 (unit length quaternion) [1, (0, 0, 0) ] 가 나온다. 단위길이 사원수 q / ( || q || ) 2016 - 2학기 컴퓨터 애니메이션

사원수를 이용한 벡터 회전 생략 벡터 [0, v]의 회전 v’ = Rot(v) = q  v  q -1 사원수의 곱셈으로 일련의 회전을 한 개로 표현 사원수 p로 표현된 회전 다음에 사원수 q 로 표현된 회전을 벡터 v 에 적용할 때 Rotq (Rotp (v)) = q  (p  v  p-1)  q-1 = ((qp)  v  (qp)-1) = Rot (v) 2016 - 2학기 컴퓨터 애니메이션