Chapter2 기술적 배경 지식

29
Chapter2 기기기 기기 기기 09052003 기기기 09052004 기기기

description

Chapter2 기술적 배경 지식. 09052003 구희모 09052004 권영우. 2.1 공간과 변환 Spaces and Transformations. 대부분의 컴퓨터 그래픽스와 컴퓨터 애니메이션은 데이터 변환을 주로 다룬다 . 애니메이션화 1). 객체 데이터의 합성 환경을 만들기 위해 정의 된 공간에서 세계 공간으로 변환 2). 객체 데이터를 시간함수로 변환 3). 데이터를 화면상에 보여주기 위해 변환 - PowerPoint PPT Presentation

Transcript of Chapter2 기술적 배경 지식

Page 1: Chapter2 기술적 배경 지식

Chapter2기술적 배경 지식

09052003 구희모09052004 권영우

Page 2: Chapter2 기술적 배경 지식

2.1 공간과 변환Spaces and Transformations

대부분의 컴퓨터 그래픽스와 컴퓨터 애니메이션은 데이터 변환을 주로 다룬다 .

애니메이션화1). 객체 데이터의 합성 환경을 만들기 위해 정의 된 공간에서 세계 공간으로 변환2). 객체 데이터를 시간함수로 변환3). 데이터를 화면상에 보여주기 위해 변환

그래픽스에서 변환을 표현 하는 주요 방법은 4X4(4 행 4열 ) 변환 행렬을 이용- 변환 행렬은 회전 , 이동과 확대 / 축소의 조합을 표현하는데 이용 .

Page 3: Chapter2 기술적 배경 지식

2.1 공간과 변화

좌표 공간은 왼손이나 오른손 좌표계로 정의 할 수 있다 .

Z

X

Y Y

XZ

왼손 좌표계 오른손 좌표계

(a)

(b)

(a). Z 축은 왼손 좌표 시스템을 위해 페이지 안쪽으로 들어간다 .

(b). Z 축은 오른손 좌표 시스템을 위해 페이지 바깥쪽으로 나온다 .

Page 4: Chapter2 기술적 배경 지식

2.1.1 디스플레이 파이프라인 (Display Pipeline)

디스플레이 파이프라인이란 ?

- 객체의 데이터를 원래의 정의된 공간에서 여러 공간들을 거쳐 최종적으로 화면상에 투상 될 때까지 거치는 변환을 말한다 .

객체 데이터는 조명을 효율적으로 계산하고 , 관측 볼륨 (view volume) 에 맞게 그 데이터를 자르고 , 투시 변환을 하기 위해서 다른 공간들로 변환 된다 .

Page 5: Chapter2 기술적 배경 지식

2.1.1 디스플레이 파이프라인 (Display Pipeline)

객체 공간 (object space)

- 객체가 원래 정의되었던 공간- 보통 원점 주변에 놓여 있고 , -`1 ~ 1 사이와 같이 한정된 표준화된 범위 (range) 안에 있다 .

객체 공간 ↓

세계 공간 ( 광원과 관찰자가 있는 공간 )

Page 6: Chapter2 기술적 배경 지식

2.1.1 디스플레이 파이프라인 (Display Pipeline)

세계 공간 ↓ 눈공간 ↓ 이미지 공간 ↓ 화면 공간

Page 7: Chapter2 기술적 배경 지식

2.1.1 디스플레이 파이프라인 (Display Pipeline)

Page 8: Chapter2 기술적 배경 지식

광선 추적법

Page 9: Chapter2 기술적 배경 지식

애니메이션의 제작 단계

시간의 흐름에 따라 객체의 위치와 방향성 조정

시간의 흐름에 따라 객체의 모양을 조정

시간의 흐름에 따라 객체의 디스플레이 속성 조정

시간의 흐름에 따라 세계 공간에서 관찰자의 위치와 방향 변환

Page 10: Chapter2 기술적 배경 지식

2.1.2 동질 좌표계와 변환 행렬

컴퓨터 그래픽스는 동질 좌표계로 종종 표현한다 .-3 차원의 점을 4 개의 원소로 갖는 벡터로 표현

그렇게 표현한 점의 좌표는 4 번째 성분을 앞의3 개를 나눈 것이 된다 .

(x/w, y/w, z/w) = [x, y, z, w] 4 번째 성분이 1 이 되는것이 전형적 공간상의 점은 아주 단순한 동질 좌표계의 표현

Page 11: Chapter2 기술적 배경 지식

2.1.2 동질 좌표계와 변환 행렬

회전 , 이동 , 확대 / 축소의 기본 변환은 4X4 행렬로 나타낼수 있다 .

Page 12: Chapter2 기술적 배경 지식

2.1.3 변환 합성하기 : 변환 행렬 곱하기 변환을 정방 행렬로 표현하는 주된 이유

→ 하나의 합성 변환 ( 결합 ) 을 하기 위해서

일련의 합성 변환 행렬 M 을 한 점 P 에 적용할 수가 있다 .

- 여러 점에 같이 적용할 때 유용 P’ = MP

행렬의 곱셈 결합 법칙은 성립 하지만 교환 법칙은 성립하지 않는다 . ((AB)C = A(BC)) → O (AB ≠ BA) → X

Page 13: Chapter2 기술적 배경 지식

2.1.4 기본 변환

강체 변환 : 일반적인 회전과 이동의 조합- 공간상의 그 위치와 방위만 변하고 객체의 공간적 용량은 변하지 않기 때문

유사 변환 : 기본변환들의 임의의 조합- 기본변환 : 회전 , 이동 , 축적- 강체 변환에 균등 축적을 허용한 변환

이 변환들은 객체의 고유의 성질과 절대 거리가 아닌 상대 거리를 유지

Page 14: Chapter2 기술적 배경 지식

2.1.5 임의의 방위 표현

강체변환 ( 이동과 회전으로 구성 ) 은 기하학적 변형없이 장면 주위에 객체를 이동하는데 매우 유용 - 이동 다음에 회전으로 표현

회전 변환은 객체 공간에서 객체 정의에 비례하여객체의 회전을 표현

- 고정각 표현법 (Fixed Angle Representation) → 방위를 표현하는 방법 중 하나로써 주 축 (Principal axis) 주변의 일련의 회전을 하는 것- 방향 코사인 행렬 (Matrix of direction cosine) → 희망 방위로의 변환을 표현

Page 15: Chapter2 기술적 배경 지식

2.1.6 행렬에서 변환을 구하기

이동을 나타내는 부분

변환된 단위좌표계의 정의부분

Page 16: Chapter2 기술적 배경 지식

2.1.7 디스플레이 경로에서 변환의 묘사

객체 공간에서 세계 공간으로의 변환- 객체 데이터의 변환된 사본을 세계 데이터 구조에 두기 위해 사용자가 지정한 일련의 회전과 축척을 실행하는 것

세계 공간에서 눈 공간으로의 변환- 투시 변환을 준비하기 위해 , 세계 공간의 모든 객체 데이터에 강체 변환을 하는 것 .- 투시 행렬 곱하기와 투시적 나누기 실행

Page 17: Chapter2 기술적 배경 지식

2.1.7 디스플레이 경로에서 변환의 묘사 이미지 공간에서 화면 공간으로의 매핑

- 투시변환 ( 투시 행렬을 곱한 후 투시적 나누기 ) 을 한 결과 를 가시 요소 [-1,+1] 의 범위로 매핑

- 눈 공간에서의 변환 후에 절단이 행해지면 계산적으로 더 단순해 진다 .

- 투시적 나누기 이전의 z 방향의 절단을 실시하는 것이 중요 ( 관찰자 뒤 객체가 화면에 투상 되는 것을 방지 )

Page 18: Chapter2 기술적 배경 지식

2.1.8 오차 고려사항

누적된 절삭 오차 해결 방법

1). 적용시 마다 변환 행렬을 새롭게 수정

2). 객체 공간의 세계 공간의 위치로 옮기는 변환 행렬을 증분해 수정

3). 델타 값을 각의 변수 누적 값에 더해서 그 각 매개 변수로부터 y 축 회전 행렬 만들기

4). 직교 정규화

5). 축척의 고려

Page 19: Chapter2 기술적 배경 지식

2.2 방위 표현 (Orientation Representation)

컴퓨터 애니메이션에서 공통된 논점이 2 가지 있다 .

1. 공간에서 object( 객체 ) 의 위치와 방위를 표현하는 최선의 방법은 ?

2. 시간이 지남에 따라 표현된 변화를 어떻게 보간 (interpolation) 할 것인가 ?

전형적인 방법은 한 객체의 2 가지 프레임을 지정하고 컴퓨터를 이용해서

중간 상태를 보간하여 애니메이션된 키 프레임 동직을 만드는 것이다 .

또 , 다른 방법으로는 객체가 2 개 이상 연속적인 변환을 수행할 때 ,

객체들의 수 많은 정점들에 적용하기 전에 이들 변환을 하나의 표현으로 결합해

서 효과적으로 처리하는 방법이 있다 .

Page 20: Chapter2 기술적 배경 지식

2.2 방위 표현 (Orientation Representation)

객체의 방위와 위치를 표현할 때 보통 4x4 변환 행렬 ( 동차 행렬 ) 을 쓴다 .

이 동차 행렬 (Homogeneous Matrix) 를 쓰는 이유는 이동 (Translation), 축소 / 확대(Scale), 회전 (Rotation) 이 쉽기 때문이다 .

1

좌측 상단 3x3 행렬은 회전에 관여하고 4 열의 3 요소는 이동에 관여한다 .

즉 , 이동과 회전을 별개로 보간 할 수 있다 . ( 방법은 생략 )

Page 21: Chapter2 기술적 배경 지식

2.2 방위 표현 (Orientation Representation)

동차행렬을 사용해서 ,

이동을 보간 하는 것은 상대적으로 간단한 일이지만

회전을 보간 하는 것은 그렇지 않다

Ex) 정육면체가 있는데 그것을 ,

y 축으로 -90 도 만큼 회전시킨 프레임과

y 축으로 +90 도 만큼 회전시킨 프레임을

보간 하면 무의미한 중간 행렬 ( 상태 ) 가 만들어 진다 .

그래서 변환 행렬로 직접 보간 하는 것보다

다른 표현법을 이용해서 보간을 표현한다 .

Page 22: Chapter2 기술적 배경 지식

2.2.1 고정 각 표현법 (Fixed Angle Representation)

고정 각 표현은 실제로 “고정된 축 (axis) 주변으로 회전하는데 사용한 각"을 말한다 .

여기서 “고정된 축"이란 x-y-z 축의 순서로 객체의 방위를 표현하는 것이다 .

Ex) 어떠한 객체의 방위가 Rz(90)Ry(45)Rx(10) 이라면

x 축으로 10 도 , 다음으로 y 축으로 45 도 , 다음으로 z 축으로 90 도 회전시켜

객체의 방위를 결정한다는 것이다 .

하지만 이 방법의 문제점은 3 도의 자유도를 가진 관절 주변을 움직일 때 2 개의 회전축이 나란히 한 줄이 될 수 있다는 것이다 . 이 효과를 짐벌락 (Gimbal Lock)이라고 한다 .

Page 23: Chapter2 기술적 배경 지식

2.2.1 고정 각 표현법 (Fixed Angle Representation)

Page 24: Chapter2 기술적 배경 지식

2.2.2 오일러 각 표현법 (Euler Angle Representation)

오일러 각 표현은 회전 축이 x,y,z 축의 전역 축이 아니고

그 객체에 붙어있는 지역 좌표계를 써서 표현하는 방법이다 .

(x 축을 피치 (Pitch), y 축을 롤 (Roll), z 축을 요 (Yaw) 라고 한다 .)

하지만 지역 좌표계도 결국 전역 좌표계에서

회전 상수들을 곱하는 것이기 때문에

고정 각 표현법과 정확하게 똑같은 장점과 단점을 가지고 있습니다 .

Page 25: Chapter2 기술적 배경 지식

2.2.3 각과 축 (Angle and Axis)

각과 축 방법은 오일러 회전 정리를 이용한 것인데

오일러 정리는 한 객체의 어떠한 두 방위에 대해서 한 방위는 임의의 한 축에 대해서 다른 방위를 한번 회전해서 만들어 진다는 의미이다 .

Page 26: Chapter2 기술적 배경 지식

2.2.3 각과 축 (Angle and Axis)

이 오일러 회전 정의로 인해 ,

어떤 방위도 세 개 ( 위도 , 경도 , 사이각 ) 로 표현할 수 있게 된다 .

위도와 경도는 3 차원 벡터로 표현할 수도 있다 .

두 객체의 방위의 중간 값은 각 객체끼리 방위의 회전으로 표현하는데

이 회전의 축은 외적으로 구한다 .

두 객체의 사이각은 내적의 역 코사인을 취하여 결정한다 .

하지만 일련의 회전을 누적할 때는 쉽게 사용할 수 없다 .

그러나 , 이 표현법에 포함된 정보는 연산들이 쉽게 구현되는 형태로

나타낼 수 있는데 , 이것을 사원수 (Quaternions) 라고 한다 .

Page 27: Chapter2 기술적 배경 지식

2.2.4 사원수 (Quaternions)

는 도저히 모르겠습니다 .

Page 28: Chapter2 기술적 배경 지식

2.2.4 사원수 (Quaternions)

Page 29: Chapter2 기술적 배경 지식

2.2.4 사원수 (Quaternions)