(Interpolation- Based Animation) 4장 보간 기반 애니메이션 (Interpolation- Based Animation) 2017-2학기 컴퓨터 애니메이션
4.1 키 프레임 시스템 키프레임 시스템 초기에 많은 컴퓨터 애니메이션 시스템들은 키 프레임 시스템이었음 마스터 애니메이터가 애니메이션 하는 시퀀스의 키 프레임들을 정의하여 수행 보조 애니메이터가 키 사이의 동작을 추론하여 중간 프레임들을 그리는 작업을 함 키 프레임(Key frame)이라는 용어가 변수들의 값이 특정 키 프레임에서 지정되고 이들 변수 값들로부터 어떤 규정된 과정에 따라 중간 프레임이 보간되는 변수에 적용되도록 일반화 변수들은 관절변수(articulation variables; avars)라 하며, 시스템들은 진로 기반(track based)이라고 부름 애니메이터가 특정값을 지정할 수가 있고 탄젠트나 내부 제어점을 조정하여 보간곡선을 제어할 수 있는 대화식 인터페이스를 제공 애니메이션 시스템들은 2차원 모양을 보간하는 전략을 가지고 있기 때문에 기본 동작은 하나의 곡선(닫힌 곡선일 수도 있음)을 다른 곡선(닫힌 곡선일 수도 있음)으로 보간하는 것 2017-2학기 컴퓨터 애니메이션
4.1 키 프레임 시스템 2017-2학기 컴퓨터 애니메이션
2017-2학기 컴퓨터 애니메이션
형태 보간 (shape animation) 기본 동작은 하나의 곡선을 다른 곡선으로 보간하는 것 정점들을 보간하는 가장 간단한 방법은 키들의 각 쌍 사이를 선형 보간하는 것 곡선 대 곡선 대응 관계 움직이는 정점 제약 (moving point constraints) 사용자가 곡선을 따라 점들의 대응 관계에 대한 정보와 이들 점들의 보간의 속도를 지정 시간에 따라 직선을 보간한다는 문제를 해결하기 위하여 표면 패치 기술 (두 개의 공간 차원)을 사용 보간되는 곡선은 여러 키프레임에서 정의 보간 정보 (즉, 한 점의 경로와 보간의 속도)는 한 점 또는 여러 개의 점에 대하여 두 개 또는 이상의 키에서 정의 2017-2학기 컴퓨터 애니메이션
움직이는 정점 제약을 이용한 보간 첫 번째 단계는 보간 제약에 따라 위에서 아래까지 한정된 보간 될 곡선의 세그먼트를 정의 곡선의 맨 위와 맨 아래의 선형 보간은, 위와 아래 세그먼트를 한정 짓는데 사용 한정된 세그먼트가 형성되었다면, 제약에 기반하여 중간 곡선을 정의 2017-2학기 컴퓨터 애니메이션
4.2 애니메이션 언어 애니메이션 언어 애니메이션을 생성하는데 필요한 정보를 부호화하는데 사용되는 조직화된 구조의 그룹 폭넓고 다양한 움직임을 표현하기 위해 충분히 표현적인 힘을 가질 수 있음 대부분 언어는 텍스트 명령으로 구성되는 스크립트 기반 명령어는 후에 일어나는 계산을 위해 저장 스크립트 언어는 새로운 명령이 사용자에 의해 입력될 때 수정되는 것으로 해석됨 2017-2학기 컴퓨터 애니메이션
4.2 애니메이션 언어 애니메이션 언어 초기 애니메이션 시스템 움직임 시퀀스를 생성하기 위하여 일반 목적 프로그래밍 언어를 사용 애니메이션을 지원하는 특별한 기능이 없었으므로 애니메이션 생성시마다 그래픽 기본 요소들, 객체의 데이터 구조, 변환, 렌더링 출력 정의 현재의 애니메이션 시스템 특정 라이브러리를 사용하거나, 애니메이션을 위해 설계된 특화된 언어 사용 언어로 쓰여진 애니메이션의 명세는 애니메이션을 다시 생성하기 위하여 언제든지 사용할 수 있는 하드코드된 기록으로 스크립트는 쉽게 복사되고 전송되며 다시 생성 프로그래밍 구조를 사용하므로 알고리즘적으로 움직임 제어에 접근할 수 있게 하여 임의의 복잡한 수치들을 계산할 수 있고, 행동에 관한 규칙들을 구현하는 것이 가능 기본적으로 프로그래밍 언어이므로 사용자들이 프로그래머가 되어야 한다는 것이 단점 2017-2학기 컴퓨터 애니메이션
전형적인 명령은 객체를 이름 짓는 것, 변환, 객체에 변환을 적용할 시간 (또는 적용될 시간의 범위) 등이다. 4.2.1 예술가 지향 애니메이션 언어 예술가 지향 애니메이션 언어 애니메이터가 컴퓨터 프로그래밍 기술을 배우지 않아도 되도록 하기 위해, 문법은 간단하게 하고 의미를 이해하기 쉽도록 하기 위해 간단한 애니메이션 언어들이 설계 전형적인 명령은 객체를 이름 짓는 것, 변환, 객체에 변환을 적용할 시간 (또는 적용될 시간의 범위) 등이다. set position <name> <x> <y> <z> at frame <number> set position <name> [X, Y, Z] to <angle> at frame <number> change position <name> to <x> <y> <z> from frame <number> to frame <number> change rotation <name> [X, Y, Z] by <angle> from frame <number> to frame <number> ANIMA II의 예제 2017-2학기 컴퓨터 애니메이션
4.2.2 애니메이션을 위한 완전 특화된 언어 애니메이션을 위한 완전 특화된 언어 애니메이션 시스템들은 스크립트 언어 위에 있는 사용자 인터페이스로서 발전 Alias/Wavefront사의 MEL 변수, 제어 명령, 프로시듀어, 식, 객체 속성에의 접근, 사용자 인터페이스를 사용자가 원하는 대로 변경할 수 있도록 하는 기능을 제공 $number_of_cubes = 10; $delta = 10; $i = 0; While ($i++ < $number_of_cubes) { polyCube; scale 1 10 1; $dist = $i*$delta; move$dist 0 0; } MEL 스크립트의 예제 2017-2학기 컴퓨터 애니메이션
4.2.3 관절 변수 여러 언어에서 사용되고 있는 특징은 특히 시간 함수에 대한 변수 값과 관련됨 함수는 보간 함수를 사용하여 절차적으로 지정되거나 대화식으로 설계됨 해당 시간에 대한 값을 반환하는 관절 함수에 시간 변수를 넘겨줌 트랙(track), 채널(channel) 또는 관절 변수 등과 같이 여러 가지 이름으로 불려짐 대화식의 스크립트 기반 애니메이션 언어를 제공하기도 함. 2017-2학기 컴퓨터 애니메이션
4.2.4 그래픽 언어 그래픽 표현에 의해 데이터 흐름 네트워크로 애니메이션을 나타냄 객체, 동작, 그리고 이들간의 관계를 나타내기 위하여 비순환 그래프가 사용 그래프의 노드들은 다른 노드와 연결되는 입력과 출력을 가지며 데이터들은 사용자에 의해 대화식으로 지정된 그래프의 호에 의해 노드에서 노드로 넘어간다 변환 노드는 노드로 넘겨진 객체 묘사에 의해 동작이 수행되어 출력으로 변화된 객체 표현을 생성 관절 변수에 따라 지정되거나 또는 사용자가 지정하는 임의 절차에 따라 지정 가시적인 설계를 위해 매우 효과적이고 다양한 계산, 함수 그리고 값 사이 독립성을 나타냄 2017-2학기 컴퓨터 애니메이션
4.2.5 행위자 기반 애니메이션 언어 행위자(캡슐화된 모델)는 기하학적 묘사, 디스플레이 속성, 동작 제어를 포함하는 데이터와 절차에 연관된 그래픽 객체인, 객체 기반 접근 방식 그래픽 객체와 연관된 데이터는 그래픽 객체의 기하학적인 형태와 디스플레이 특성을 지정할 뿐만 아니라 그래픽 객체의 움직임도 표현 한다는 것 행위자 기반 시스템은 모델에 속해 있는 시간에 따라 변화하는 정보와 통신하는 편리한 방법을 제공 메시지 패싱(message passing)과 연관되어 있는 캡슐화되어 있는 행위자 성질은 시뮬레이션 시스템에서 행위자가 사용될 때 비효율적인 결과를 가져올 수 있음. 2017-2학기 컴퓨터 애니메이션
[그림 4.7] 간단한 Houdini 데이터 흐름 네트워크와 생성되는 객체 2017-2학기 컴퓨터 애니메이션
4.3 객체 변형 객체를 변형시키거나 한 객체에서 다른 객체로 변환하는 것은 시각적으로 강력한 애니메이션 기법 에지 연결을 공유하면 에지의 연결 모양을 정의한다면 한 모양에서 다른 모양으로 자연스럽게 변화시키기 위하여 정점 대 정점 기반에서 보간할 수 있음 어파인 객체의 모양을 변화시키는 변환의 가장 간단한 형태 3 X 3 행렬과 이동에 의해 정의 객체를 짓누르고 늘어나게 하는 것, 과장되게 갑자기 정지하게 하는 것 등에 사용 사용자 정의 일그러짐에 사용 https://en.wikipedia.org/wiki/Affine_transformation 2017-2학기 컴퓨터 애니메이션
4.3.1 선택과 당김 사용자에게 하나의 정점(시작 정점)이나 객체의 정점 그룹을 이동하도록 허용하고, 그리고 많은 이동 값을 점점 감쇄시켜가면서, 객체의 곡면을 따라 인접한 정점들의 위치를 계속해서 옮기는 것 간단한 함수는 시작 정점과 위치를 이동시킬 정점을 연결하는 최소한의 에지를 이용함 2017-2학기 컴퓨터 애니메이션
2017-2학기 컴퓨터 애니메이션
4.3.2 삽입된 공간 변형 자유 변형 (free-form deformation; FFD) 객체의 모양을 변화시키는 대중적인 기법 변형되어야 하는 객체 영역을 포함하는 지역 좌표 시스템을 정하는 것과 유사한 접근 방법을 사용하는 많은 기법들 중 하나 변형될 객체에서는 전역 지역 좌표 정의되며 각 정점들의 지역 좌표를 결정함으로써 지역 좌표공간에서의 위치가 정해짐 사용자가 객체의 정점을 다루는 것보다 지역 좌표 시스템을 다루는 것이 더 쉬우며 보다 직관적임 객체를 다루는 것이 좌표 시스템에서 가능한 변형의 범위로 제한되는 것이 단점 2017-2학기 컴퓨터 애니메이션
2D 격자 변형 (2D Grid Deformation) 격자는 초기에 전역 축과 맞추어져서 지역 좌표에서 전역 좌표로 가는 매핑은 스케일과 이동으로 구성 예를 들어, 지역 그리드 정점들은 20에서 28사이의 x와 12에서 15까지의 y전역 정수 값에서 정의(그림 3.57) 정점 A 의 전역 좌표: (25.6, 14.7) 정점 A 의 지역 좌표: (5.6, 2.7) 2017-2학기 컴퓨터 애니메이션
다음은 사용자가 지역 공간이 변형되도록 격자의 정점들을 이동하여 격자를 변형 객체의 정점은 정점들이 놓여있는 격자의 셀에 대하여 쌍일차 보간(bilinear interpolation) 하여 변형된 격자에 재배치 정점 A 에 대하여 사용된 쌍일차 보간값은 0.6 과 0.7 2017-2학기 컴퓨터 애니메이션
객체의 모든 정점들에 대하여 위 과정을 마치면, 객체는 지역 격자의 변형에 따라 변형된다. 수백, 수천 개의 정점을 가진 객체에서는 정점들을 각각 재배치하는 것보다 격자 변형의 훨씬 효율적이다. 2017-2학기 컴퓨터 애니메이션
폴리라인 변형 (Polyline Deformation) 폴리라인 변형은 객체 정점들이 폴리라인에 매핑되고, 사용자에 의해 폴리라인이 수정됨 폴리라인으로의 매핑은 우선 각 객체 정점에 대하여 가장 타당한 선 세그먼트를 찾아서 수행 각 폴리라인 세그먼트는 두 개의 경계선을 가진다. 각 객체 정점에 대하여 경계선들 사이에 객체 정점을 포함하고 있는 가장 가까운 폴리라인 세그먼트가 선택된다. 다음에는 각 객체 정점들이 대응하는 폴리라인 세그먼트에 매핑된다. 그림 4.13, 그림 4.14, 그림 4.15 참고 객체 정점을 변형된 폴리라인으로 재매핑 객체 정점을 폴리라인으로 매핑하는데 사용된 크기 2017-2학기 컴퓨터 애니메이션
전역적 변형 (Global Deformation) 객체가 정의된 공간을 전역적으로 변형하는 방법 3x3 변환 행렬 M 을 적용 이 행렬은 변환되는 점의 함수, 즉 P’ = M(P)이며, 여기서 M(P)는 M이 P에 의존적이라는 것을 가리킴 그림 4.16 은 간단한 2D 테이퍼링 예제 비틀기, 구부리기, 또한 이들의 조합 (그림 4.17, 4.18, 4.19) 그림 4.16 전역적 테이퍼링 2017-2학기 컴퓨터 애니메이션
그림 4.17 2017-2학기 컴퓨터 애니메이션
그림 4.18 2017-2학기 컴퓨터 애니메이션
그림 4.19 2017-2학기 컴퓨터 애니메이션
생략 자유형 변형 (FFD, Free-Form Deformation) FFD 는 앞의 2D 격자 변형을 3D 로 확장한 것으로 고차 급수의 보간을 포함한다. 두 경우 모두 표준적인 구성에서 지역화된 좌표 격자는 객체 위에 놓이게 된다. 객체의 각 정점에 대하여 지역 격자에 상대적인 좌표들이 격자에 정점으로 추가된다. 이러한 상대 좌표를 사용하여 각 정점은 전역 공간에 재배치된 수정된 격자로 다시 매핑된다. 선형보간 대신 일반적으로 3차 급수 보간이 FFD 와 함께 사용된다. 예: Bezier 보간 객체 정점들은 3차원 직선 그리드 안에 위치 2017-2학기 컴퓨터 애니메이션
생략 FFD 의 첫 번째 단계에서 객체 정점들은 3차원 직선 그리드 안에 위치 초기에는 지역 좌표 시스템은 반드시 직교하지 않아도 되는 3개의 벡터 (S, T, U)에 의해 정의 하나의 점 P는 세 개의 선에 의한 보간 값을 결정함으로써 지역 좌표 시스템에 등록 2017-2학기 컴퓨터 애니메이션
생략 위에서 두 개 벡터의 외적은 처음 두 개 벡터에 직교하는 세 번째 벡터를 만들어낸다. 분모는 계산값을 정규화한다. 예를 들어, S 를 T X U 로 투영하면 점들을 0 < s < 1 의 범위 안으로 매핑시키는 거리를 결정 2017-2학기 컴퓨터 애니메이션
생략 점의 지역 좌표 (s, t, u) 와 수정하지 않은 지역 좌표 그리드가 주어지면, 단순히 지역 좌표에 따라 지역 좌표 축의 방향을 움직임으로써 전역 공간에서 점의 위치를 다시 구할 수 있다. 지역 좌표 시스템을 위해 S, T, U 축에 의해 정의되는 평행육면체에서 제어점들의 그리드를 생성할 수 있다. 2017-2학기 컴퓨터 애니메이션
생략 만약 S 방향에 ns 개 점이 있고, T 방향에 nt 개 점, U 방향에 nu 개 점이 있는 경우 다음 수식에 따라 제어점들이 위치. 변형은 초기 위치로부터 제어점을 이동시킴으로서 지정된다. 변형에 영향을 미치는 함수는 3-매개변수 Bezier 보간 함수이다. 2017-2학기 컴퓨터 애니메이션
생략 FFD들을 조립하기 – 순차적/계층적 순차적 조립 첫 번째 FFD는 곡면에서 관을 만들고 두 번째 FFD에서 객체를 구부리도록 함 [그림 4.24] 순차적 FFD들 2017-2학기 컴퓨터 애니메이션
생략 FFD들을 조립하기 – 계층적 사용자가 여러 가지 세부적인 수준에서 작업할 수 있도록 함 미세한 해상도의 FFD는 대부분 지역적이며, 계층에서 위쪽에 있는 FFD에 포함 덜 미세한 수준의 FFD가 객체의 정점을 수정하기 위하여 사용되는 대신 변형에 의해 영향 받는 공간 안에 있는 아래 계층에 있는 FFD의 제어 점들을 수정함 미세한 수준에서 작업 [그림 4.25] 계층적 FFD들의 간단한 예 2017-2학기 컴퓨터 애니메이션
생략 애니메이션된 FFD들 지금까지는 FFD는 정점들의 위치를 재배치함으로써 객체의 모양을 수정하는 방법으로 간주됨 애니메이션은, 하나의 정점씩 객체의 정점들의 선형 보간을 행함으로써 수행됨 FFD 는 여러 가지 방법으로 애니메이션을 직접적으로 제어하는데 사용될 수 있다. FDD의 제어점을 애니메이션 하여, 객체의 모양을 자동적으로 애니메이션하는 변형된 애니메이션을 만들어 냄 2017-2학기 컴퓨터 애니메이션
생략 변형 도구 (Deformation Tools) 변형 도구는 초기 격자와 마지막 격자의 합성으로 정의됨 초기 격자는 사용자가 정의하며 애니메이션 될 모델의 영역에 포함 마지막 격자는 사용자에 의해 변형된 초기 격자의 복사본 변형 도구가 특정 객체에 대하여 정의될 수도 있지만, 도구 자체는 객체 독립적인 방법으로 표현 도구를 이동하기 객체와 관계된 변형 도구의 움직임을 지정 2017-2학기 컴퓨터 애니메이션
생략 2017-2학기 컴퓨터 애니메이션
생략 객체 이동하기 객체는 FFD의 지역 변형 공간에서 이동될 수 있으며, FFD 그리드를 지나가면서 변형시킬 수 있음 2017-2학기 컴퓨터 애니메이션
생략 FFD 제어점들을 애니메이션 하기 FFD를 애니메이션 하는 방법으로 FFD 제어점들을 애니메이션 이들의 움직임은 물리기반 시뮬레이션의 결과일 수 있음 FFD 격자점들이 움직임에 따라 객체의 정점들을 변화하는 변형을 정의 2017-2학기 컴퓨터 애니메이션
4.4 3D 모양 보간 곡면 기반 (surface-based) 객체의 경계 표현을 사용하며 두 개 객체의 정점-에지 위상이 일치하도록 하나 또는 둘 모두 수정함 객체의 정점들은 정점을 기반으로 하여 보간됨 부피 기반 (volume-based) 객체가 차지하는 부피를 고려하며 하나의 부피가 다른 부피로 혼합됨 서로 다른 객체의 위상에 덜 민감하다는 것이 장점 객체의 부피 표현을 필요로 하며 곡면 기법들보다 많은 계산이 필요 2017-2학기 컴퓨터 애니메이션
위상 (topology) 위상의 첫 번째 의미는 객체 표면의 연결성 객체가 가지고 있는 구멍의 수와 분리하여 표현된 입체의 수를 의미 도우넛과 찻잔은 같은 위상을 가지면 위상이 같다 (topologically equivalent) 라고 한다. 두 개 객체 표면에 있는 점 사이에 연속적이고, 역이 가능한, 일대 일 매핑이 존재한다면, 두 개 객체는 위상이 같다고 한다. 객체의 부류 (genus) 얼마나 많은 구멍 또는 통로가 있는가를 나타낸다. 물놀이 공은 부류 0 객체 찻잔은 부류 1 객체 위상의 두 번째 의미는 객체의 정점/에지/면 의 연결성 위상이 같은 객체는 x, y, z 좌표 정의를 제외하고 동일하다. 2017-2학기 컴퓨터 애니메이션
모양 변환 문제의 접근 방법 (1) 대응 문제 (correspondence problem) 한 객체의 정점으로부터 다른 객체의 정점으로 매핑 (2) 보간 문제 (interpolation problem) 하나의 객체을 다른 객체로 변환하는 것을 시각적으로 표현하는 중간 객체의 시퀀스 생성 2017-2학기 컴퓨터 애니메이션
4.4.1 위상 매칭 하나의 객체를 다른 객체로 변환하는 가장 간단한 경우는 보간된 두 개의 객체가 동일한 정점-에지 위상을 공유하는 것 객체들은 단순히 정점 기반으로 정점들의 위치를 보간하여 변환됨 두 번째 객체를 생성하기 위하여 정점-에지 연결성을 수정하지 않고 한 객체의 모양을 수정하기 위해, FFD처럼 논의된 기법들 중 하나를 사용하는 경우에 발생 대응 관계는 두 객체가 공유하는 정점-에지 연결성 구조에 의해 정해짐 보간 문제는 3D 정점 위치들을 보간함으로써 해결 2017-2학기 컴퓨터 애니메이션
4.4.2 별 모양의 다면체 두 객체가 별 모양의 다면체라면, 두 객체간 3D 매핑을 만들어 내기 위해 극좌표를 사용 객체 곡면은 객체의 커널에서 중심점으로부터 방사되는 선의 정규적인 분포로 샘플링되고, 중간 객체의 정점들은 선을 따라 교차 점 사이를 보간함으로서 구함 [그림 4.31] 참조 다각형을 구하는 정점들은 전처리 단계에서 결정될 수 있음 극공간에서 선이 어떻게 분포되는가에 의존적 다각형 커널 [그림 4.31] 모든 내부 점들이 보이는 별 모양의 다각형과 대응하는 커널 2017-2학기 컴퓨터 애니메이션
[그림 4.32] 별 모양의 다면체 모양 보간 광선을 따라 객체 1을 샘플링 광선을 따라 객체 2를 샘플링 두 객체 사이 중간점을 보간 결과 객체 [그림 4.32] 별 모양의 다면체 모양 보간 2017-2학기 컴퓨터 애니메이션
4.4.3 축 방향의 슬라이스 중심축에 대하여 별 모양인 객체를 보간 각 객체에 대하여 사용자는 객체의 중심을 지나는 축을 정의 이 중심 축은 양쪽 객체에 대하여 정의되고 각 객체의 내부에 있는 각 축의 부분은 0부터 1까지 매개변수화 됨 축과 직교하는 방위 벡터를 정의 대응하는 슬라이스들은 각 객체로부터 얻음 한 객체로부터의 모든 슬라이스들은 원래 객체로의 근사를 재구성하기 위하여 contour-lofting 기법 중 하나를 사용할 수 있음 2D 슬라이스들은 중심점으로부터 나오고 방위 벡터에 대하여 일정한 간격에서 경계를 샘플링 하는 선을 구성함으로서 쌍으로 보간될 수 있음 2017-2학기 컴퓨터 애니메이션
2017-2학기 컴퓨터 애니메이션
샘플링을 밀도 있게 할수록, 원래 객체로의 근사가 더 정확해짐 대응하는 점들은 3차원에서 보간할 수 있음 축을 따라 매개 변수화 하는 것과 방위 백터에 대하여 매개 변수화 하는 것을 함께 하면 객체의 곡면에서 2D 좌표 시스템을 구할 수 있다 샘플링을 밀도 있게 할수록, 원래 객체로의 근사가 더 정확해짐 대응하는 점들은 3차원에서 보간할 수 있음 대응하는 슬라이스의 쌍으로부터 선-다각형 교차 점들의 각 집합은 보간 매개 변수에 기반하여 중간 슬라이스를 생성하는데 사용됨 그림 4.35 참조 2017-2학기 컴퓨터 애니메이션
4.4.3 축 방향의 슬라이스 [그림 4.35] 각각의 중심 축을 따라 두 개의 객체로부터 얻어진 보간 슬라이스들 2017-2학기 컴퓨터 애니메이션
4.4.4 구로의 매핑 복잡한 매핑 과정은 객체들의 곡면을 2차원 매개변수화 하는 것을 필요함 접근 방법으로 단위 구와 같이 양쪽 객체를 공통 곡면으로 매핑하는 것 양쪽 객체가 구로 매핑된 후 그들의 정점-에지 위상의 합집합을 구할 수 있으며 또한 각각 원래의 객체로 다시 매핑하는 것도 가능 객체들에 대한 이러한 새로운 정의는 정점 기반 보간에 의해 변환될 수 있음 2017-2학기 컴퓨터 애니메이션
객체의 중신점으로부터 떨어진 객체 각 정점와 에지를 투상하는 것 별 모양의 다면체에서는 잘 동작하지만 다른 입체에서는 그렇지 않음 키 정점들을 구의 곡면에 고정 시키며 사용자에 의해 선택되거나 또는 가장 위쪽, 가장 아래쪽, 가장 왼쪽 등 자동적으로 선택되는 방법 만약 양쪽 객체들이 구의 곡면으로 성공적으로 매핑된다면 투상된 에지들은 교차되며 하나의 위상으로 합쳐짐 원래 객체들과 모양은 동일하지만 같은 정점-에지 위상을 가지게 되며 한 객체로부터 다른 객체로 변환하기 위하여 정점 기반 보간을 허용 양쪽의 객체들의 정점들이 구로 매핑되고 나면 에지들은 구의 곡면에 있는 원형의 호로 매핑됨 모델의 면들은 구로 투상되기 전에 삼각형으로 나뉘어지며 다른 객체의 정점 또는 에지로 투상되는 객체의 정점들처럼 변화되는 경우는 발생되지 않음 2017-2학기 컴퓨터 애니메이션
생략 구로의 매핑 알고리즘 객체 A의 한 정점 VA에 대하여 정점 VA를 포함하는 객체 B의 면 FB를 찾는 것으로 시작 (그림 4.37 참조) VA로부터 나오는 에지들은 작업 목록에 추가 면 FB가 현재면이 되고 FB의 모든 에지들은 각 에지의 교차-후보 목록에 포함 에지 EA와 이에 연관된 교차-후보 목록은 작업 목록으로부터 얻어짐 에지 EA는 교차-후보 목록에 있는 에지들과 교차하는지 시험 교차하지 않는다면 에지 EA에대한 교차 처리가 끝나게 되며 알고리즘은 교차-순서 단계로 넘어감 교차 I를 에지 EB와 함께 찾게 되면 다음 단계들이 수행 I가 최종 모델에 추가 I는 에지 EA의 교차 목록과 에지 EB의 교차 목록에 추가 에지 EB의 다른 쪽에 있는 면 GB가 현재면이 됨 GB의 다른 에지들은 EA의 교차-후보 목록의 에지들과 대체됨 (그림 4.38 참조) 2017-2학기 컴퓨터 애니메이션
생략 4.4.4 구로의 매핑 2017-2학기 컴퓨터 애니메이션
생략 객체 B로부터 에지 EB에 대하여 정점 VB를 정의한 것 중 하나는 객체의 면 FA에 위치하게 됨 나머지 교차점들은 이 새로운 현재면을 가지고 있는 목록이 어떤 목록인지 보기 위해 검색 됨 2017-2학기 컴퓨터 애니메이션
생략 4.4.5 재귀적인 분할 전 과정에서 합치는 동작의 결과로 새로운 에지들이 생성된다는 것 새로운 에지가 과다하게 만들어지는 것을 피하기 위해 각 객체가 2차원 다각형 메쉬로 줄어드는 재귀적인 접근 방법을 사용함 분할 과정에서 생성되는 새 에지들의 수를 줄이기 위하여 가능한 경우에는 언제나 이미 존재하는 에지들이 사용됨 초기 객체들이 초기 숫자만큼 다각형 메쉬들로 분할됨 각 메쉬는 인접하는 관계가 매핑에서 유지되도록 다른 객체로부터의 메쉬와 연관되게 된다 수행하는 방법으로 각 객체들을 2 개의 메쉬로만 나누는 것 앞 메쉬와 뒤 메쉬는 객체의 최상위, 최하위, 가장 왼쪽, 가장 오른쪽 정점들간의 가장 짧은 경로를 검색함으로서 만들어지며 이러한 경로들을 추가한다 2017-2학기 컴퓨터 애니메이션
생략 4.4.5 재귀적인 분할 2017-2학기 컴퓨터 애니메이션
생략 사용자가 변환 과정 동안 객체들의 특정 영역들을 서로 매핑하기를 원한다면 이러한 영역들은 서로 연관된 초기 메쉬들이어야 하며 연관에 의해 인접관계가 유지된다고 가정 메쉬와 다른 메쉬와 연관될 때 두 개의 메쉬들 경계에서 정점들 사이에 일대일 매핑이 반드시 확립되어야 함 메쉬들 중 하나가 다른 것보다 적은 수의 경계 정점들을 가지고 있다면 차이를 없애기 위해 경계를 따라 새로운 정점들이 생성되어야 함 제안된 방법 경계의 첫 번째 정점으로부터 측정되는 경계를 따라 각 정점의 정규화 된 거리를 계산하는 것 더 작은 정점들을 가진 경계에 대해서 경계에서 연속적인 정점들에 대하여 정규화된 거리에서 가장 큰 간격을 검색함으로서 새로운 정점들은 한번에 하나씩 더해질 수 있음 (그림 4.41 참조) 2017-2학기 컴퓨터 애니메이션
생략 2017-2학기 컴퓨터 애니메이션
4.5 모핑 2차원 이미지 변형 일반적으로 원 이미지라고 부르는 하나의 이미지로부터 목적 이미지라고 부르는 다른 이미지로 변환하는 것 접근 방법 첫 번째 방법은 각 이미지에 겹쳐놓게 되는 사용자 정의 좌표 격자에 기반 두 번째 방법은 사용자 정의 특징 선들의 쌍에 기반하며 각 쌍의 대해 하나의 선은 두 이미지에서 특징에 대응되는 각 이미지 표시에 있음 2017-2학기 컴퓨터 애니메이션
4.5.1 좌표 격자 접근 방법 하나의 이미지를 다른 이미지로 변환하기 위해서, 모핑될 두 개의 이미지 각각에 굽은 격자를 정의 두 개의 이미지에서 같은 수의 격자 교차 점들을 위치함으로서 격자를 정의함 곡선 모양의 매쉬는 Catmull-Rom 스플라인과 같은 보간 방법에서 격자 교차점들을 제어점으로 사용하여 생성 2017-2학기 컴퓨터 애니메이션
2017-2학기 컴퓨터 애니메이션
크로스 디졸브는 마지막 이미지를 생성하기 위해 두 개의 변형된 이미지 사이에서 픽셀 당 수행된다 (그림 4.43 참조) 원 이미지에서 목적 이미지로 가는 동안 중간 이미지를 생성하기 위해 원래 격자와 목적 격자의 정점들은 중간 격자를 만들기 위하여 보간 원 이미지와 목적 이미지로부터 픽셀들은 원래 이미지와 목적 격자 모두의 변형된 버전이 생성되도록 중간 격자에 따라 늘여지기도 하고 압축되기도 함 크로스 디졸브는 마지막 이미지를 생성하기 위해 두 개의 변형된 이미지 사이에서 픽셀 당 수행된다 (그림 4.43 참조) 2017-2학기 컴퓨터 애니메이션
4.5.1 좌표 격자 접근 방법 2017-2학기 컴퓨터 애니메이션
중간 격자로 변형될 원 이미지가 있다고 가정하며 동일한 가정을 사용하여 목적 이미지를 중간 격자로 변형함 원 이미지로부터 픽셀은 보간된 격자에 맞추기 위해 x-방향으로 늘여지기도 하고 압축되기도 함 보조격자는 각 격자점에 대하여 대응하는 원 이미지의 격자점들로부터 x-좌표와 대응하는 중간 격자의 점들로부터 y-좌표를 사용 원 이미지는 보조 격자에 매핑됨으로서 x에 대하여 늘여지고/압축되고 보조격자는 중간 격자에 이것을 매핑하기 위하여 y에 대하여 픽셀을 늘인다/압축한다 (그림 4.44 참조) 2017-2학기 컴퓨터 애니메이션
2017-2학기 컴퓨터 애니메이션
보조 격자가 정의 되면, 첫 번째 단계에서 x-방향에서 원래 픽셀들을 변형하기 위하여 원 이미지와 보조 격자가 사용됨 격자 점들의 각 열에 대하여 픽셀 좌표에 3차 급수의 Catmull-Rom 스플라인을 정의 가장 왼쪽과 가장 오른쪽 열은 이미지의 양쪽에 내려가는 직선을 정의 (그림 4.45 참조) 스캔 선에서 각 픽셀의 위치는 (격자 인덱스, x-절편) 쌍의 2차원 공간을 지나가는 Catmull-Rom 스플라인을 계산함으로서 x-절편과 관계하여 정해짐 2017-2학기 컴퓨터 애니메이션
[그림 4.45] 보조 이미지에서 주어진 픽셀에 대하여, 원 이미지에서 픽셀 좌표의 범위를 결정 2017-2학기 컴퓨터 애니메이션
위 두 단계 과정은 중간 그리드에 대하여 원 이미지와 목적 이미지 둘 다에 적용된다. 이 두 개 이미지가 동일한 중간 그리드에 대하여 변형되고 나면, 중요한 특징들은 비슷한 위치에 있게 될 것이다. 다음, 이미지는 픽셀 기반으로 크로스 디졸브 되며, 이것은 대응하는 픽셀로부터 두 가지 색을 혼합하는 것이다. C[i][j] = C1[i][j] + (1 - ) C2[i][j]; 위 선형적인 혼합보다는 애니메이션 된 모핑이 동적인 품질을 높임 애니메이션 된 이미지는 사용자가 두 개의 애니메이션 되는 시퀀스 각각에서 여러가지 키 이미지에 대한 좌표 그리드를 정의하여 모핑 시퀀스의 좌표 그리드는 시퀀스의 어떠한 프레임에서도 그 프레임에 대한 좌표 그리드가 생성되도록 시간에 대하여 보간된다. (그림 4.47) 2017-2학기 컴퓨터 애니메이션
생략 2017-2학기 컴퓨터 애니메이션
생략 4.5.2 특징 기반 모핑 특징 선들을 이용하여 이미지간 대응 관계를 설정함 서로 대응되는 특징을 구분하기 위하여 두 개의 이미지에 특징 선들을 그림 중간 이미지 픽셀에 대응되는 원 이미지 픽셀 위치를 정하기 위해 매핑에서 원 이미지가 사용 중간 이미지들은 최종 중간 이미지를 형성하기 위해 크로스 디졸브 됨 2017-2학기 컴퓨터 애니메이션
생략 P1에서 P2로 향하는 특정 선에 의해 정해진 매핑을 고려 선의 첫 번째 점은 근원 선의 두 번째 점은 양수의 V-축 방향과 스케일에서의 단위 거리를 정함 특정 선에 대한 픽셀의 좌표 (u, v)는 특정 선에 의해 정의되는 지역 좌표 시스템의 U-축과 V-축에 대한 픽셀의 위치를 계산함으로서 찾음 변수 v는 (P - P1)의 (P2 - P1) 방향으로의 투상이며 (P2 - P1)의 길이에 대하여 정규화 2017-2학기 컴퓨터 애니메이션
생략 하나의 이미지를 하나의 특징 선으로 변환하기 위해서 중간 이미지의 각 픽셀은 원 이미지로 다시 매핑됨 그 위치 주위의 원 이미지 픽셀의 색은 중간 이미지 픽셀에 색을 입히기 위해 사용됨 2017-2학기 컴퓨터 애니메이션