(Interpolation Values) 3장 값 보간 (Interpolation Values) 2015-2학기 컴퓨터 애니메이션
시간에 따라 보간된 위치를 원하는 대로 제어할 수 있는 상태를 유지 3.1 보간(Interpolation) 대부분의 애니메이션의 기초 예: 공간에서 한 점의 위치를 보간 정확하게 보간하기 위해 필요사항 적합한 보간함수 움직인 거리에 대한 함수의 매개 변수화 시간에 따라 보간된 위치를 원하는 대로 제어할 수 있는 상태를 유지 애니메이터들은 대부분 특정 프레임(키 프레임 또는 익스트림)에서의 매개변수 값들의 목록을 가지고 있음 키 프레임 사이의 프레임들에 대한 매개변수의 값들을 어떻게 잘 생성할 것인지가 중요 2015-2학기 컴퓨터 애니메이션
3.1.1 적합한 함수(The Appropriate Function) 보간 vs 근사(Interpolation versus Approximation) 곡선을 표현하는 점들의 집합이 주어졌을 때, 가장 먼저 할 일은 주어진 값들이 보간, 근사인지를 결정 점들이 원하는 곡선 위의 샘플 점인지 아니면 새로운 곡선을 디자인하기 위해 사용하는 점인지에 따라 구분 보간: 주어진 값들이 실제로 곡선을 지나가야 하는 위치를 의미 보통 많이 사용하며, Hermite 공식과 Catmull-Rom 스프라인 근사: 곡선이 지나가는 실제 위치를 의미하는 것이 아니라 단순히 곡선의 모양을 제어하기 위한 것 2015-2학기 컴퓨터 애니메이션
보간 함수의 기초 수식이 간단할수록, 계산이 빨라지므로 근사 수식의 복잡도에 중요 복잡도(Complexity) 보간 함수의 기초 수식이 간단할수록, 계산이 빨라지므로 근사 수식의 복잡도에 중요 3차 다항식은 충분한 유연성을 가지며, 충분한 매끄러움을 제공하는 급수가 가장 낮은 다항식임 3차 보다 급수가 낮은 다항식은 곡선에 영향을 주는 점들을 제공하지 않으며, 어떤 점들에서는 매끄럽지 않음 3차 보다 높은 급수의 다항식은 특별한 장점이 없으며 계산 비용도 더 많이 듬 2015-2학기 컴퓨터 애니메이션
결과 곡선이 매끄럽게 되는 것이 가장 중요한 관심사 연속성(Continuity) 결과 곡선이 매끄럽게 되는 것이 가장 중요한 관심사 매끄러운 곡선은 수학적으로 곡선 수식에서 얼마나 많은 미분 계수가 연속적인가에 의해 결정 0차 연속성은 곡선 자체의 값이 연속적이라는 의미 어떤 기하학적 디자인 환경에서 곡선과 면의 2차 연속성이 필요한 경우도 있으나, 대부분의 애니메이션 응용에서는 1차 연속성이면 충분 2015-2학기 컴퓨터 애니메이션
전역 vs 지역 제어(Global versus Local control) 곡선을 디자인 할 때 사용자는 보통 곡선의 일부를 비틀기 위하여 곡선의 모양을 제어하는 하나 또는 여러 개의 점들의 위치를 변경 전역 제어: 하나의 제어점의 위치를 변경했을 때 전체 곡선이 약간이라도 변화되면 그 공식은 전역 제어를 제공 지역 제어: 곡선의 제어점이 제한적인 부분에만 영향을 미치는 공식 2015-2학기 컴퓨터 애니메이션
매개변수 값이 증가함에 따라 곡선을 따라가는 속도는, 예측 가능한 결과를 만들어 내기 위해 애니메이터가 직접 제어해야 함 3.2 곡선을 따라 움직임 제어하기 매개변수 값이 증가함에 따라 곡선을 따라가는 속도는, 예측 가능한 결과를 만들어 내기 위해 애니메이터가 직접 제어해야 함 애니메이터가 제어하도록 하기 위한 방법 일정한 증가치에 대해 곡선을 따라 이동하는 방법을 결정 그 다음 애니메이터에게 곡선을 따라 속도를 내거나 줄이는 방법을 사용할 수 있도록 결정 호의 길이에 의한 매개 변수화를 행하는 방식 곡선을 샘플링하여 테이블을 만들어 내고, 호의 길이를 근사하기 위하여 선형 거리를 더한 것을 사용하는 방법 수치상으로 호의 길이를 예측하기 위하여 가우시안 구적접(Gaussian quadrature)을 사용하는 방법 호의 길이를 분석적으로 계산하는 방법 2015-2학기 컴퓨터 애니메이션
가능하다면, 곡선은 공간 수식을 분석함으로써 호 길이에 대하여 명시적으로 매개 변수화 하여야 함 3.2.1. 호의 길이 계산하기 객체가 곡선의 의해 정의된 경로를 따라 얼마나 빨리 움직이는가를 정의하기 위해 애니메이터는 곡선을 따라 도달하는 위치에서의 시간을 지정해야 함 매개 변수 값과 호 길이 사이의 관계 정립 가능하다면, 곡선은 공간 수식을 분석함으로써 호 길이에 대하여 명시적으로 매개 변수화 하여야 함 매개 변수 공간 곡선의 대부분의 종류는 호 길이에 의하여 매개 변수화하는 것이 불가능 많은 유용한 종류의 곡선에서 호 길이에 의한 매개 변수화가 불가능하므로, 여러 근사 매개 변수화 기법이 개발됨 2015-2학기 컴퓨터 애니메이션
점 p(u1)로부터 다름 점 p(u2)까지 곡선의 길이는 호 길이 적분을 계산함으로써 구할 수 있음(수식 3.3) (생략) 호 길이 계산에의 분석적 접근 점 p(u1)로부터 다름 점 p(u2)까지 곡선의 길이는 호 길이 적분을 계산함으로써 구할 수 있음(수식 3.3) 매개 변수화된 변수에 대한 공간 곡선의 미분 계수는 수식 3.4와 수식 3.5 처럼 정의 (수식 3.3) (수식 3.4) (수식 3.5) 2015-2학기 컴퓨터 애니메이션
매개 변수 값과 호 길이를 대응시키는 쉽고 개념적으로 간단한 방법은 많은 매개 변수 값에서 곡선을 샘플링하는 것임 (생략) 전치차분에 의한 호 길이 예측 매개 변수 값과 호 길이를 대응시키는 쉽고 개념적으로 간단한 방법은 많은 매개 변수 값에서 곡선을 샘플링하는 것임 각 매개 변수 값은 곡선을 따라 한 점을 생성 이러한 샘플링 점들은 인접한 점들 사이의 선형적인 거리를 계산함으로써 호의 길이를 예측하는데 사용 위의 작업이 끝나면, 매개 변수 값으로 인덱스된 호의 길이로 구성된 테이블이 만들어짐 2015-2학기 컴퓨터 애니메이션
u로 인덱스되고, G(u)처럼 표현된 테이블은 다음과 같이 계산 됨. G(0) = 0.0 (생략) 예로 주어진 곡선 P(u)에 대하여, u=0.00, 0.05, 0.10, … , 1.0에 대하여 곡선을 따라 위치를 계산한다고 가정. u로 인덱스되고, G(u)처럼 표현된 테이블은 다음과 같이 계산 됨. G(0) = 0.0 G(1) = P(0.00)과 P(0.05) 사이의 거리 G(2) = G(1)과 P(0.05)과 P(0.10) 사이의 거리를 더한 값 G(3) = G(2)과 P(0.10)과 P(0.15) 사이의 거리를 더한 값 … G(20) = G(19)와 P(0.95)과 P(1.00) 사이의 거리를 더한 값 2015-2학기 컴퓨터 애니메이션
(생략) [표 3.1] 매개 변수, 호 길이 인덱스 매개 변수 값(V) 호 길이(G) 2015-2학기 컴퓨터 애니메이션 0.00 0.000 1 0.05 0.080 2 0.10 0.150 3 0.15 0.230 4 0.20 0.320 5 0.25 0.400 6 0.30 0.500 7 0.35 0.600 8 0.40 0.720 9 0.45 0.800 10 0.50 0.860 11 0.55 0.900 12 0.60 0.920 13 0.65 0.932 14 0.70 0.944 15 0.75 0.959 16 0.80 0.972 17 0.85 0.984 18 0.90 0.994 19 0.95 0.998 20 1.00 1.000 [표 3.1] 매개 변수, 호 길이 2015-2학기 컴퓨터 애니메이션
(생략) 표 3.1에 있는 u에 대한 값 V와 함수 G의 대응하는 값들의 테이블이 어떻게 사용되었는지 보기 위해, 사용자가 곡선의 시작점부터 매개 변수가 0.73이 되는 곡선의 위치까지 거리를 알고 싶어하는 경우를 고려 테이블에서 0.73에 가장 가까운 매개 변수 값을 찾아내야 하며 매개변수 값들은 균일하게 분포되어 있기 때문에, 테이블에서 주어진 값과 가장 가까운 값의 위치는 바로 계산하여 결정할 수 있음. 표 3.1에서 인덱스 i는 매개 변수 값 사이 거리, 여기서는 d=0.05와 주어진 매개 변수 값, 여기서는 v=0.38을 이용하여 수식 3.8에 의하여 결정 됨. (수식 3.8) 2015-2학기 컴퓨터 애니메이션
적응력 있는 접근 방법 생략 적응력 있는 접근 방법 적응력 있는 접근 방법 생략 적응력 있는 접근 방법 오차를 좀더 잘 제어하기 위해서, 오차가 클 것이라고 예측되는 지역에서 계산을 더 하도록 하는 방법이 사용될 수 있음 문제점: 아직 이른데도 두 절반 세그먼트가 분할을 그만둘 수 있다는 점(그림 3.7) 특정 수준까지 분할을 계속한 다음 적응적 분할을 하는 것이 대부분의 경우 현명한 방법임 2015-2학기 컴퓨터 애니메이션
적응력 있는 접근 방법 생략 테이블의 곡선의 첫 점에 대해 <0, 0, P(0)>으로 초기화 되고, 전체 곡선은 <0.0, 1.0>을 시험될 세그먼트 목록에 포함 프로시저는 리스트가 비워질 때까지 시험될 리스트에 있는 세그먼트들에 대하여 동작 세그먼트의 길이와 각 세그먼트의 절반에 대한 길이는 곡선에서 점들 사이의 선형적인 거리에 따라 구할 수 있음 두 세그먼트의 절반 길이의 합은 계산된 세그먼트의 길이와 비교된 두 값의 차이가 사용자가 정한 한계치를 넘을 경우, 절반들을 차례로, 오차 허용 범위에 대해 (θ/2n, n은 분할 단계) 시험될 세그먼트의 리스트에 추가 허용 한계를 넘지 않을 경우, 중간 점의 매개 변수 값은 세그먼트의 첫 번째 점의 호 길이와 시작 점부터 중간 점까지의 거리와 함께 테이블에 기록 (수식 3.12) 2015-2학기 컴퓨터 애니메이션
저장 공간과 시간의 효율성을 모두 고려해야 하는 경우, 호 길이를 수치적으로 계산하는 것이 바람직함 (생략) 호 길이를 수치적으로 계산하기 저장 공간과 시간의 효율성을 모두 고려해야 하는 경우, 호 길이를 수치적으로 계산하는 것이 바람직함 많이 사용하는 방법인 가우시안 구적법은 -1부터 1까지의 적분 간격에서 정의되며, 적분될 함수는 -1에서 +1까지의 간격에서 고정된 점에서 계산되고, 각각의 함수에는 미리 계산된 가중치가 곱해짐(수식 3.12) 2015-2학기 컴퓨터 애니메이션
가장 적은 수의 함수를 사용하여 최대의 정확성을 얻기 위한 시도 (생략) 가우시안 구적법 가장 적은 수의 함수를 사용하여 최대의 정확성을 얻기 위한 시도 공간 곡선의 미분 계수를 계산하는 것은 알고리즘에서 처리 시간의 대부분을 차지하기 때문에, 계산하는 횟수를 최소화하는 것이 효율성 측면에서 중요 -1부터 1까지의 적분 간격에서 정의 수식 (3.13) 2015-2학기 컴퓨터 애니메이션
도함수를 위해 대체와 대응되는 조정을 하여 임의 범위는 수식 3.15에 보여진 것처럼 가우시안 적분에 의해 처리 (생략) 적분 간격 t ∈ (a, b)에서 정의된 함수 g(t )는 3.14에서와 같이 선형 변환에 의해 간격 u ∈ [-1, 1]에서 정의된 h(u) = g(f(u))로 변환 도함수를 위해 대체와 대응되는 조정을 하여 임의 범위는 수식 3.15에 보여진 것처럼 가우시안 적분에 의해 처리 3차 급수 곡선의 호 길이를 계산하는 가우시안 구적법을 사용하려면, 수식 3.16의 호길이를 정의를 수행하기 위한 3.16의 가우시안 적분에서 제시 수식 (3.14) 수식 (3.15) 수식 (3.16) 2015-2학기 컴퓨터 애니메이션
샘플링을 적게할 경우에는 오차가 결과에 나타나며, 너무 많이 할 경우에는 필요하지 않은 계산을 하기 때문에 시간을 낭비하게 됨 (생략) 적응 가우시안 적분 어떤 공간 곡선들은 어느 부분에서는 급격하게 변화하고 다른 부분에서는 적게 변화하는 미분 계수를 가지고 있는데, 이러한 곡선에서 가우시간 구적법은 곡선의 어떤 부분에서는 샘플링을 적게 하고, 다른 부분에서는 샘플링을 너무 많이 하게 된다 샘플링을 적게할 경우에는 오차가 결과에 나타나며, 너무 많이 할 경우에는 필요하지 않은 계산을 하기 때문에 시간을 낭비하게 됨 이 문제를 해결하기 위하여, 적응력 있는 접근 방식을 이용할 수 있으며, 이것은 적응 전치 차분 방법을 사용하여 호 길이를 예측하는 것과 관계되어 논의한 접근 방식과 같음 2015-2학기 컴퓨터 애니메이션
주어진 s에 대하여 u찾기(Finding u Given s) 분할점의 테이블은 (u, s) 의 짝으로 구성 (생략) 주어진 s에 대하여 u찾기(Finding u Given s) 분할점의 테이블은 (u, s) 의 짝으로 구성 s: 매개변수 값 u에서의 호 길이 수식 s-LENGTH(u1, u)=0의 해답으로 부터 점 R(u1)로부터 호 길이 s에 해당하는 값 u를 구할 수 있음 Newton-Raphson 반복은 수식의 근을 찾는데 이용할 수 있는데, 그 이유는 Newton-Raphson 반복은 빠르게 수렴하고 각 반복에서 계산을 매우 적게 하기 때문 2015-2학기 컴퓨터 애니메이션
호 길이에 의해 공간 곡선이 매개 변수화되고 나면, 곡선 위를 운행하는 속도를 제어하는 것이 가능 3.2.2 속도 제어(Speed Control) 호 길이에 의해 공간 곡선이 매개 변수화되고 나면, 곡선 위를 운행하는 속도를 제어하는 것이 가능 속도 제어 함수의 입력 매개 변수는 시간(time)을 나타내는 t이며, 출력은 거리(distance)를 나타내며 s로 표시되는 호 길이(arc length) 다음의 가정을 따르게 되면, 전체 공간 곡선은 주어진 전체 시간에서 지남 거리-시간 함수, S(t)는 t에서 단조로워야 한다-즉, 곡선을 따라 후진하지 않고 운행해야 한다 거리-시간 함수는 연속적이어야 한다-즉, 곡선의 한 점에서 곡선에서 인접하지 않은 점으로 순간적으로 이동하는 것이 없어야 한다 이것은 0.0=s(0.0)이고 total_distance=s(total_time)이라는 것을 의미 2015-2학기 컴퓨터 애니메이션
3.2.3 이지인/이지아웃(Ease-in/Ease-out) 이지인/이지아웃은 곡선을 따라 움직임을 제어하는데 가장 일반적으로 사용되는 방법 활용방법이 여러 가지인데, 기준이 되는 가정은 움직임은 완전히 정지한 상태에서 시작하고 끝이 나며 속도에 있어서 순간적인 점프가 없다는 것(1차 연속성) 이것은 속도를 제어하는 데 사용된 기법에 따라, 일정 속도의 중간 간격일 수도 있고 아닐 수도 있음 속도 제어 함수는, s(t)=ease(t)라고 할 것이며, t는 시간을 나타내는 일정하게 변화하는 입력 매개 변수이고, s는 시간의 함수에서 움직인 거리를 나타내는 출력 매개 변수 2015-2학기 컴퓨터 애니메이션
Easy in easy out animation http://www.cartoonsolutions.com/store/catalog/Timing-for-Animation-sp-7.html 2015-2학기 컴퓨터 애니메이션
사인 보간(Sine Interpolation) 이지인/이지아웃을 쉽게 구현하는 한 가지 방법은 ease(t) 함수로 –π/2에서 + π/2까지의 범위에서의 사인 곡선 부분을 이용하는 것 이것은 매개 변수값 0부터 +1까지를 –π/2에서 +π/2 범위로 매핑하고, 대응되는 사인 함수의 -1부터 1사이의 범위를 0에서 1까지의 범위로 매핑하는 것(수식 3.17과 그림 3.11 참고) 2015-2학기 컴퓨터 애니메이션
사용자는 가속과 감속을 위한 단위 간격의 조각들을 지정한다고 가정 가속과 감속을 위하여 사인 곡선의 일부 사용 일정한 속도를 가지는 거리-시간 함수의 중간 부분을 제공하기 위하여, 선형적인 중간 세그먼트를 가지는 함수의 각 끝 지점에서 사인 곡선의 일부를 만들 수 있으며, 그 부분의 접선이 1차 급수의 연속성을 가지도록 주의해야 함 사용자는 가속과 감속을 위한 단위 간격의 조각들을 지정한다고 가정 사용자가 지정한 값을 각각 k1과 k2라고 하면, 사인 곡선 세그먼트는 시간 0부터 k1까지 가속을 구현할 때 사용 사인 곡선은 시간 k2부터 1까지 감속을 구현하기 위한 속도로 사용 2015-2학기 컴퓨터 애니메이션
세그먼트 접점을 나타내는 유용한 값들로 스케일된 곡성 세그먼트 시간 초기에 모아진 이지인/이지아웃 곡선 세그먼트 접점을 나타내는 유용한 값들로 스케일된 곡성 세그먼트 [그림 3.2] 사인 곡선의 세그먼트를 일정 속도의 중간 간격을 가지고 사용 2015-2학기 컴퓨터 애니메이션
(생략) 수식 (3.14) 여기서, 2015-2학기 컴퓨터 애니메이션
단일 다항식은 사인 곡선 이지인/이지아웃 제어 (수식 3.20)를 근시하기 위해 사용될 수 있음 단일 3차 급수 다항식 이지인/이지아웃 생략 단일 3차 급수 다항식 이지인/이지아웃 단일 다항식은 사인 곡선 이지인/이지아웃 제어 (수식 3.20)를 근시하기 위해 사용될 수 있음 이는 난해한 함수 호출을 피하는 두 개의 십진수 점으로 정확도를 제공함 0의 수평 시작과 끝 탄젠트(tan)로 점 (0, 0)과 (1, 1)을 지난다 (수식 3.20) 2015-2학기 컴퓨터 애니메이션
속도-시간 곡선을 가정할 수 있는 가속에 대하여 기본 가정 3.2.4 상수 가속: 포물선 이지인/이지아웃 속도-시간 곡선을 가정할 수 있는 가속에 대하여 기본 가정 사용자는 매개변수를 사용하여 결과로서 거리-시간 함수를 얻기 위하여 적분될 수 있는 특정한 속도-시간 함수를 지정 이지인/이지아웃이 없는 간단한 경우 상수 0의 가속 곡선 0부터 전체 시간에 걸쳐 어떤 값 v0의 수평 직선인 속도 곡선 생성 실제 값 v0는 포함된 거리에 의존적 distance=speed*time v0*total_time=distance_covered 1.0의 정규화된 예로 값들이 포함된 전체 거리와 전체 시간을 위하여 사용되었다면, v0=1.0이 됨 (그림 3.14) 2015-2학기 컴퓨터 애니메이션
2015-2학기 컴퓨터 애니메이션
속도-시간 함수는 가속-시간 함수의 적분과 같다. 움직임의 시작과 끝에서는 상수 가속과 감속 거리-시간 곡선은 속도-시간의 적분과 같다. 속도-시간 함수는 가속-시간 함수의 적분과 같다. 움직임의 시작과 끝에서는 상수 가속과 감속 움직임의 중간에서는 0 가속을 가정 (그림 3.15) “acc” 곡선 영역은 “dec” 곡선 영역과 같아야 하며 가속과 감속의 실제 값들은 서로 같아야 할 필요는 없다. (acc, dec, t1, t2) 네 변수 중 세 개는 사용자에 의해 지정될 수 있다. 2015-2학기 컴퓨터 애니메이션
t v = v0 ∙ 0.0 < t < t1 t1 v = v0 t1 < t < t2 2015-2학기 컴퓨터 애니메이션
그림 3.15 가속/감속 그래프 2015-2학기 컴퓨터 애니메이션
1.0 = 시작부분의 직선 아래 영역 + 상수 속도의 중간 직선 아래 영역 속도 함수 가속에 대해 선형적인 기울기를 가지며 일정 속도 간격 감속에 대해 선형적인 기울기를 갖는다. 속도 곡선의 아래 영역: 수식 3.21 1.0 = 시작부분의 직선 아래 영역 + 상수 속도의 중간 직선 아래 영역 2015-2학기 컴퓨터 애니메이션
전체 거리와 전체 시간이 주어지면, 평균 속도는 고정됨 사용자에 의한 평균 속도 수정 속도-시간 곡선의 절대적인 위치를 움직임 3.2.5 일반적인 거리-시간 함수 전체 시간 동안 전체 거리를 지나가는 가정 전체 거리와 전체 시간이 주어지면, 평균 속도는 고정됨 사용자에 의한 평균 속도 수정 속도-시간 곡선의 절대적인 위치를 움직임 주요 지점에서의 절대 속도를 고정하고 평균 속도에 대하여 곡선의 내부 모양을 변경: 속도-시간 곡선의 모양에 예상하지 못했던 변화가 나타날 수 있음 2015-2학기 컴퓨터 애니메이션
음의 속도는 양이 되는 시간이 될 때까지 점이 공간 곡선을 따라 후진하는 것을 의미 사용자가 거리-시간 곡선에서 바로 작업: 가장 직관적인 접근 방법 거리-시간 곡선이 (0, 0)에서 시작하여 (1.0, 1.0)에서 끝나도록 제한 2015-2학기 컴퓨터 애니메이션
움직임 제어는 주어진 시간의 공간 곡선에서의 위치와 속도 지정을 필요로 함 예: 물체를 잡기 위해 손을 내미는 동작의 경우 처음에 물체를 향해 손이 가속되고 가까이 감에 따라 물체를 잡기 전에 속도가 거의 0이 될 때까지 속도를 줄인디. 동작은 시간, 위치, 속도, 가속 조건이 차례대로 나열되어 지정 2015-2학기 컴퓨터 애니메이션
3.2.6 위치-시간에 적합한 곡선 만약 애니메이터가 특정 시간에 반드시 만족해야하는 특정 위치제약을 가지고 있다면, 시간-매개 변수화된 공간 곡선은 바로 결정됨 위치-시간 쌍들은 애니메이터가 지정할 수 있음(그림 3.21) 2015-2학기 컴퓨터 애니메이션
(생략) 예: B-Spline 곡선을 (Pi, ti), i = 1, … j 형태의 값들에 맞추는 경우 2015-2학기 컴퓨터 애니메이션
고정된 각도와 오일러(Euler) 각도와 같은 짐벌(gimbal) 잠금의 영향을 받지 않음 3.3 4원수로 표현된 회전의 보간 4원수는 4중의 실수 [s, x, y, z] 이나 수(scalar) s 와 3차원의 벡터 v 로 나타내는 [s, v] 를 말한다. 4원수는 오리엔테이션을 표현하는데 유용 4원수를 선택한 가장 중요한 이유 쉽게 보간될 수 있음 고정된 각도와 오일러(Euler) 각도와 같은 짐벌(gimbal) 잠금의 영향을 받지 않음 보간에서 크기의 효과를 피하기 위해, 보통 단위 4원수가 오리엔테이션을 표현하기 위해 사용됨 2015-2학기 컴퓨터 애니메이션
첫 번째 4원수에서 두 번째 사원수까지의 직선 경로 상의 4차원 점들로 볼 수 있음 단위 4원수로 표현된 두 개의 오리엔테이션이 주어질 경우, 처음 오리엔테이션에서부터 두 번째 오리엔테이션까지 선형 보간하여 중간 오리엔테이션을 생성할 수 있음 첫 번째 4원수에서 두 번째 사원수까지의 직선 경로 상의 4차원 점들로 볼 수 있음 단순한 등간격, 즉 두 개의 4원수 사이의 선형 보간은 상수 속도 회전을 만들어 내지 않음 중간 오리엔테이션이 사상되는 단위 4원수는 단위 공간에서 등간격을 만들어 내지 않기 때문 2015-2학기 컴퓨터 애니메이션
3.3 4원수로 표현된 회전의 보간 생략 4원수 q1에서 q2까지 의 보간은 q1에서 –q2까지에서도 실행 가능 차이점: 한 보간 경로가 다른 것보다 길다 짧은 경로가 좋음: 두 오리엔테이션 사이 좀 더 바른길을 나타냄 짧은 경로 선택 방법 q1과 q2 사이의 각도의 코사인을 이용 코사인이 양수 , q1에서 q2까지 경로가 더 짧음 코사인이 음수, q1에서 -q2까지 경로가 더 짧음 Cos Θ = q1 · q2 = S1 · S2 + v1 · v2 q2 Θ q1 -q2 2015-2학기 컴퓨터 애니메이션
3.4 경로 따라가기(Path Following) 경로를 따라 객체를 움직임으로써 객체를 애니메이션하는 것은 매우 흔한 기법이며 구현하기 쉬운 기법 중 하나임 경로를 따라가는 객체 곡선의 호 길이로 매개 변수화 움직임이 이지인/이지아웃 방법으로 제어 객체의 오리엔테이션 변경도 고려해야 함 2015-2학기 컴퓨터 애니메이션
3.4.2 경로를 따라가는 오리엔테이션 지역 좌표 시스템 (u, v, w)는 애니메이션되는 객체에 대하여 정의 오른손 좌표 시스템 가정 경로 P(s)를 따라가는 점에 의해 결정 프레임 번호, 호 길이 매개 변수화, 이지인/이지아웃 제어에 기반하여 생성 이러한 위치는 POS라 부름 뷰 벡터(view vector)는 w-축으로 간주하고, 업 벡터(up vector)는 v-측으로 간주하며, 그리고 지역 u-축은 이들 둘과 직각을 이룸 지역 u-축은 객체의 왼쪽을 가리키고 w-축은 객체 위치에서 내려다보이고 머리는 v-축에 맞추어진다. 2015-2학기 컴퓨터 애니메이션
2015-2학기 컴퓨터 애니메이션
프레네(Frenet) 프레임의 사용(Use of the Frenet Frame) 프레네 프레임은 곡선의 탄젠트와 곡률에 따라 결정되는 움직이는(오른손)좌표 시스템 (u, v, w)에서와 같이 곡선을 따라 정의 프레네 프레임은 곡선의 길이에 따라 오리엔테이션이 변경 첫 번째 미분계수(P’(s))의 방향에 있는 w에 대해 정규화된 직교 벡터로 정의되며 v는 w에 직교하고 두 번째 미분계수 (P’’(s))의 방향에 있으며, u는 이들 둘의 교적으로 만들어 짐(그림 3.30) 2015-2학기 컴퓨터 애니메이션
프레네(Frenet) 프레임 수식 2015-2학기 컴퓨터 애니메이션
관심의 중점(COI)을 배경에서 고정된 위치에 배치하거나, 배경에서 객체 중 하나의 중점을 사용하는 것 카메라 경로 따라가기: COI(Camera Path Following: Adding a Center of Interest)를 추가 관심의 중점(COI)을 배경에서 고정된 위치에 배치하거나, 배경에서 객체 중 하나의 중점을 사용하는 것 두 경우 모두, 뷰 벡터 w=COI-POS를 계산하는데 이용 지역좌표시스템 사용자에 의한 업벡터 지정 뷰 벡터를 지정하는 가장 간단한 방법은 COI를 정의하기 위하여 델타 매개 변수 값을 사용 카메라의 위치: P(s) 이면, COI 는 P(s + s) 가 된다. 호 길이에 의해 매개 변수화한 경우 2015-2학기 컴퓨터 애니메이션
w = C(s) – P(s) u = w x (U(s) – P(s)) v = u x w COI 정의를 위해 독립된 경로를 사용하는 경우 카메라의 위치는 P(s)에 의해 지정 COI 는 C(s) 에 의해 지정 업벡터 경로 U(s)는 U(s) – C(s) 가 되도록 정의 카메라에 대한 좌표 프레임 수식 w = C(s) – P(s) u = w x (U(s) – P(s)) v = u x w 2015-2학기 컴퓨터 애니메이션
3.4.2 경로를 매끄럽게 하기 정점들이 경로를 구성하는 경우, 잡음과 낮은 정밀도 때문에 결과 곡선이 튀어 보일 수 있다. 2015-2학기 컴퓨터 애니메이션
2차원 정점들의 순서 집합은 인접 정점들을 평균함으로써 매끄럽게 할 수 있음 인접 값들의 선형 보간으로 매끄럽게 하기 2차원 정점들의 순서 집합은 인접 정점들을 평균함으로써 매끄럽게 할 수 있음 원래의 데이터 정점 Pi의 양쪽에 있는 두 정점을 평균함 평균 정점은 원래 데이터 정점과 평균함(수식 3.32) 데이터를 매끄럽게 하기 위하여 반복하여 선형 보간을 적용한다면 함몰 부분이 점점 없어질 것이며 곡선이 평평하게 될 것임 2015-2학기 컴퓨터 애니메이션
원래의 정점 Pi의 양쪽에 있는 두 개의 데이터 정점은 제약점으로 사용 수식 3.33은 u=1/2에서 계산될 수 있음 인접 값들의 3차 급수 보간으로 매끄럽게 하기 곡률을 유지하면서 데이터를 매끄럽게 하기 위해서는, 데이터 정점의 양쪽에 있는 인접 정점을 이용하여 3차 급수 곡선에 맞추고 중간 정점에서 계산 원래의 정점 Pi의 양쪽에 있는 두 개의 데이터 정점은 제약점으로 사용 수식 3.33은 u=1/2에서 계산될 수 있음 결과는 원래의 정점과 함께 평균되어짐(그림 3.36) 2015-2학기 컴퓨터 애니메이션
(생략) 그림 3.37 2015-2학기 컴퓨터 애니메이션
(생략) 합성 변환 매끄럽게 하기 매끄럽게 되어야 하는 데이터가 함수 yi=f(xi)의 값이라면, 합성 변환으로 데이터를 매끄럽게 할 수 있음 데이터 정점들을 단계 함수로 보고 합성 변환을 데이터 정점에 적용 (그림 3.42) 합성 변환을 위한 속성 (그림 3.43) 0 주위에 집중되어 있으며, 대칭이며, 유한 지원을 받으며, 합성변환 곡선 아래의 면적은 1이다 2015-2학기 컴퓨터 애니메이션
(생략) B-스플라인 근사로 매끄럽게 하기 곡선에 대한 근사가 충분하다면, 정점들은 곡선에서 선택됨 2015-2학기 컴퓨터 애니메이션
3.4.3 표면에서 경로 정하기 생략 하나의 객체가 다른 객체의 표면을 따라서 움직인다면, 표면에서의 경로를 반드시 지정해야만 함 다각형 표면에서 경로를 정하는 쉬운 방법은 두 정점을 포함하고 일반적으로 표면에 수직인 평면을 정하는 것 Generally perpendicular : 둘 사이에 경로를 형성하는 두 개 정점 법선의 평균으로 정한다. 곡면 메쉬를 구성하는 면의 평면 교차는 두 정점 사이의 경로를 정의할 것이다. 시작 정점에서 끝 정점까지의 메쉬 표면을 따라 에지(edge) 경로 구성 2015-2학기 컴퓨터 애니메이션
2015-2학기 컴퓨터 애니메이션