Chapter2 기술적 배경 지식 09052003 구희모 09052004 권영우.

Slides:



Advertisements
Similar presentations
1. 2 차원 배열  배열은 동일한 데이터 유형으로 여러 개의 변수를 사용할 경우 같은 이 름으로 지정하여 간편하게 사용할 수 있도록 하는 것으로서 앞에서 1 차원 배열을 공부하였습니다.  2 차원 배열은 바둑판을 생각하면 되며, 1 차원 배열에서 사용하는 첨자를 2.
Advertisements

1. 도형의 연결 상태 2. 꼭지점과 변으로 이루어진 도형 Ⅷ. 도형의 관찰 도형의 연결상태 연결상태가 같은 도형 단일폐곡선의 성질 연결상태가 같은 입체도형 뫼비우스의 띠.
수학을 통해 배우는 IT 과학의 세계 전북대: 한상언 교수.
Multimedia Programming 14: Image Warping 2
컴퓨터와 인터넷.
재료수치해석 HW # 박재혁.
Chapter09 CSS3 애니메이션 HTML5 Programming.
Report #5 - due: 4/13 다음 10*5의 희소 행렬 A, B를 고려하라.
Entity Relationship Diagram
원자 스펙트럼 1조 서우석 김도현 김종태.
사원수 (Quaternion)
Windows Server 장. 사고를 대비한 데이터 백업.
Chapter 02 순환 (Recursion).
2장 기술적 배경 지식 (Technical Background)
디지털영상처리 및 실습 대구보건대학 방사선과.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
멀티미디어 시스템 (아날로그 이미지,신호를 디지털로 변환 방법) 이름 : 김대진 학번 :
상관함수 correlation function
행렬 기본 개념 행렬의 연산 여러가지 행렬 행렬식 역행렬 연립 일차 방정식 부울행렬.
강원대학교 공과대학 제어계측공학과 2010년도 제2학기
11장. 1차원 배열.
3차원 객체 모델링.
Trigonometric Function
빅데이터 연구회 6주차 발표 주제 : 서포트 벡터 머신 통계학과 서태석.
프로그래밍 개요
피타고라스 정리 Esc.
SEOUL NATIONAL UNIVERSITY OF SCIENCE & TECHNOLOGY
소마큐브로 3*3*3(정육면체)만드는 방법 탐구하기
Java의 정석 제 5 장 배 열 Java 정석 남궁성 강의 의
뇌를 자극하는 Windows Server 2012 R2
‘Chess’를 읽고 컴퓨터공학부 배상수.
Term Projects 다음에 주어진 2개중에서 한 개를 선택하여 문제를 해결하시오. 기한: 중간 보고서: 5/30 (5)
Samsung Software Membership 3D MIM 신진수
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
3D 프린팅 프로그래밍 01 – 기본 명령어 강사: 김영준 목원대학교 겸임교수.
Clipping 이진학.
4장 기하학적 객체와 변환 - 기하 1장 – 그래픽스 시스템과 모델 2장 – 그래픽스 프로그래밍 3장 – 입력과 상호작용
정다면체, 다면체와 정다각형, 다각형의 관계 한림초등 학교 영제 6학년 5반 송명훈.
8장. spss statistics 20의 데이터 변환
P 등속 직선 운동 생각열기 – 자동차를 타고 고속도로를 달릴 때, 속력계 바늘이 일정한 눈금을 가리키며 움직이지 않을 때가 있다. 이 때 자동차의 속력은 어떠할까? ( 속력이 일정하다 .)
9강. 클래스 실전 학사 관리 프로그램 만들기 프로그래밍이란 결국 데이터를 효율적으로 관리하기 위한 공구
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
CAD 실습 2013년 2학기.
대칭과 전위 3차원 대칭과 32 점군 정족과 정계 결정면의 명칭 3차원 격자와 230 공간군 결정형 결정의 투영
18강. 인터페이스 – II - 인터페이스와 다중상속 - 인터페이스를 통한 로봇 장남감 만들기 프로그래밍
Real time Interaction HyoungSeok Kim
Window, Viewport Window, Viewport.
2장. 일차원에서의 운동 2.1 평균 속도 2.2 순간 속도 2.3 분석 모형: 등속 운동하는 입자 2.4 가속도
서울대학교 컴퓨터공학부 김명수 행렬과 2차원 변환 서울대학교 컴퓨터공학부 김명수
2장 변형률 변형률: 물체의 변형을 설명하고 나타내는 물리량 응력: 물체내의 내력을 설명하고 나타냄
에어 PHP 입문.
벡터의 성질 - 벡터와 스칼라 (Vector and Scalars) - 벡터의 합 -기하학적인 방법
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
Chapter 1 단위, 물리량, 벡터.
Word2Vec.
Chapter 1 단위, 물리량, 벡터.
3D 프린팅 프로그래밍 03 – 도형 회전 (손잡이컵 만들기) 강사: 김영준 목원대학교 겸임교수.
1. 정투상법 정투상법 정투상도 (1) 정투상의 원리
7장 원운동과 중력의 법칙.
2D 게임 프로그래밍 제안서 김보명.
9 브라우저 객체 모델.
상관계수.
수치해석 ch3 환경공학과 김지숙.
버스와 메모리 전송 버스 시스템 레지스터와 레지스터들 사이의 정보 전송을 위한 경로
: 3차원에서 입자의 운동 방정식 제일 간단한 경우는 위치만의 함수 : 시간, 위치, 위치의 시간미분 의 함수
플래시MX2004 디자인스쿨 Chapter 11. 플래시와 사운드.
7 생성자 함수.
6 객체.
Lecture #6 제 4 장. 기하학적 객체와 변환 (1).
Presentation transcript:

Chapter2 기술적 배경 지식 09052003 구희모 09052004 권영우

2.1 공간과 변환 Spaces and Transformations 대부분의 컴퓨터 그래픽스와 컴퓨터 애니메이션은 데이 터 변환을 주로 다룬다. 애니메이션화 1). 객체 데이터의 합성 환경을 만들기 위해 정의 된 공간에서 세계 공간으로 변환 2). 객체 데이터를 시간함수로 변환 3). 데이터를 화면상에 보여주기 위해 변환 그래픽스에서 변환을 표현 하는 주요 방법은 4X4(4행 4열) 변환 행렬을 이용 - 변환 행렬은 회전, 이동과 확대/축소의 조합을 표현하는데 이용.

2.1 공간과 변화 좌표 공간은 왼손이나 오른손 좌표계로 정의 할 수 있다. Y (b) Y (a) Z X X Z 왼손 좌표계 (b). Z축은 오른손 좌표 시스템을 위해 페이지 바깥쪽으로 나온다.

2.1.1 디스플레이 파이프라인 (Display Pipeline) 디스플레이 파이프라인이란? - 객체의 데이터를 원래의 정의된 공간 에서 여러 공간들을 거쳐 최종적으로 화면상에 투상 될 때까지 거치는 변환 을 말한다. 객체 데이터는 조명을 효율적으로 계산 하고, 관측 볼륨(view volume)에 맞게 그 데이터를 자르고, 투시 변환을 하기 위해서 다른 공간들로 변환 된다.

2.1.1 디스플레이 파이프라인 (Display Pipeline) 객체 공간(object space) - 객체가 원래 정의되었던 공간 - 보통 원점 주변에 놓여 있고, -`1 ~ 1 사이 와 같이 한정된 표준화된 범위(range)안에 있다. 객체 공간 ↓ 세계 공간(광원과 관찰자가 있는 공간)

2.1.1 디스플레이 파이프라인 (Display Pipeline) 세계 공간 ↓ 눈공간 ↓ 이미지 공간 ↓ 화면 공간

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

광선 추적법

애니메이션의 제작 단계 시간의 흐름에 따라 객체의 위치와 방향성 조정 시간의 흐름에 따라 객체의 모양을 조정 시간의 흐름에 따라 객체의 디스플레이 속성 조정 시간의 흐름에 따라 세계 공간에서 관찰자의 위치와 방향 변환

2.1.2 동질 좌표계와 변환 행렬 컴퓨터 그래픽스는 동질 좌표계로 종종 표현한다. -3차원의 점을 4개의 원소로 갖는 벡터로 표현 그렇게 표현한 점의 좌표는 4번째 성분을 앞의 3개를 나눈 것이 된다. (x/w, y/w, z/w) = [x, y, z, w] 4번째 성분이 1이 되는것이 전형적 공간상의 점은 아주 단순한 동질 좌표계 의 표현

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

2.1.3 변환 합성하기 : 변환 행렬 곱하기 변환을 정방 행렬로 표현하는 주된 이유 → 하나의 합성 변환(결합)을 하기 위해서 일련의 합성 변환 행렬 M을 한 점 P에 적용할 수가 있다. - 여러 점에 같이 적용할 때 유용 P’ = MP 행렬의 곱셈 결합 법칙은 성립 하지만 교환 법칙은 성립하 지 않는다. ((AB)C = A(BC)) → O (AB ≠ BA) → X

2.1.4 기본 변환 강체 변환 : 일반적인 회전과 이동의 조 합 - 공간상의 그 위치와 방위만 변하고 객체의 공간적 용량은 변하지 않기 때문 유사 변환 : 기본변환들의 임의의 조합 - 기본변환 : 회전, 이동, 축적 - 강체 변환에 균등 축적을 허용한 변환 이 변환들은 객체의 고유의 성질과 절대 거리가 아닌 상대 거리를 유지

2.1.5 임의의 방위 표현 강체변환(이동과 회전으로 구성)은 기하학적 변형 없이 장면 주위에 객체를 이동하는데 매우 유용 - 이동 다음에 회전으로 표현 회전 변환은 객체 공간에서 객체 정의에 비례하여 객체의 회전을 표현 - 고정각 표현법(Fixed Angle Representation) → 방위를 표현하는 방법 중 하나로써 주 축(Principal axis) 주변의 일련의 회전을 하는 것 - 방향 코사인 행렬(Matrix of direction cosine) → 희망 방위로의 변환을 표현

2.1.6 행렬에서 변환을 구하기 변환된 단위좌표계의 정의부분 이동을 나타내는 부분

2.1.7 디스플레이 경로에서 변환의 묘사 객체 공간에서 세계 공간으로의 변환 - 객체 데이터의 변환된 사본을 세계 데이터 구조에 두기 위해 사용자가 지정한 일련의 회 전과 축척을 실행하는 것 세계 공간에서 눈 공간으로의 변환 - 투시 변환을 준비하기 위해, 세계 공간의 모 든 객체 데이터에 강체 변환을 하는 것. -투시 행렬 곱하기와 투시적 나누기 실행

2.1.7 디스플레이 경로에서 변환의 묘사 이미지 공간에서 화면 공간으로의 매핑 - 투시변환(투시 행렬을 곱한 후 투시적 나누기)을 한 결과 를 가시 요소 [-1,+1]의 범위로 매핑 - 눈 공간에서의 변환 후에 절단이 행해지면 계산 적으로 더 단순해 진다. - 투시적 나누기 이전의 z방향의 절단을 실시하는 것이 중요 (관찰자 뒤 객체가 화면에 투상 되는 것을 방지 )

2.1.8 오차 고려사항 누적된 절삭 오차 해결 방법 1). 적용시 마다 변환 행렬을 새롭게 수정 2). 객체 공간의 세계 공간의 위치로 옮기는 변환 행렬을 증분해 수정 3). 델타 값을 각의 변수 누적 값에 더해서 그 각 매개 변수로부터 y축 회전 행렬 만들기 4). 직교 정규화 5). 축척의 고려

2.2 방위 표현(Orientation Representation) 컴퓨터 애니메이션에서 공통된 논점이 2가지 있다. 1. 공간에서 object(객체)의 위치와 방위를 표현하는 최선의 방법은? 2. 시간이 지남에 따라 표현된 변화를 어떻게 보간(interpolation)할 것인가? 전형적인 방법은 한 객체의 2가지 프레임을 지정하고 컴퓨터를 이용해서 중간 상태를 보간하여 애니메이션된 키 프레임 동직을 만드는 것이다. 또, 다른 방법으로는 객체가 2개 이상 연속적인 변환을 수행할 때, 객체들의 수 많은 정점들에 적용하기 전에 이들 변환을 하나의 표현으로 결합해 서 효과적으로 처리하는 방법이 있다.

2.2 방위 표현(Orientation Representation) 객체의 방위와 위치를 표현할 때 보통 4x4 변환 행렬(동차 행렬)을 쓴다. 이 동차 행렬(Homogeneous Matrix)를 쓰는 이유는 이동(Translation), 축소/확대(Scale), 회전(Rotation)이 쉽기 때문이다. 1 좌측 상단 3x3행렬은 회전에 관여하고 4열의 3요소는 이동에 관여한다. 즉, 이동과 회전을 별개로 보간 할 수 있다. (방법은 생략)

2.2 방위 표현(Orientation Representation) 동차행렬을 사용해서, 이동을 보간 하는 것은 상대적으로 간단한 일이지만 회전을 보간 하는 것은 그렇지 않다 Ex) 정육면체가 있는데 그것을, y축으로 -90도 만큼 회전시킨 프레임과 y축으로 +90도 만큼 회전시킨 프레임을 보간 하면 무의미한 중간 행렬(상태)가 만들어 진다. 그래서 변환 행렬로 직접 보간 하는 것보다 다른 표현법을 이용해서 보간을 표현한다.

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) 이라고 한다.

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

2.2.2 오일러 각 표현법(Euler Angle Representation) 오일러 각 표현은 회전 축이 x,y,z축의 전역 축이 아니고 그 객체에 붙어있는 지역 좌표계를 써서 표현하는 방법이다. (x축을 피치(Pitch), y축을 롤(Roll), z축을 요(Yaw)라고 한다.) 하지만 지역 좌표계도 결국 전역 좌표계에서 회전 상수들을 곱하는 것이기 때문에 고정 각 표현법과 정확하게 똑같은 장점과 단점을 가지고 있습니다.

2.2.3 각과 축(Angle and Axis) 각과 축 방법은 오일러 회전 정리를 이용한 것인데 오일러 정리는 한 객체의 어떠한 두 방위에 대해서 한 방위는 임의의 한 축에 대 해서 다른 방위를 한번 회전해서 만들어 진다는 의미이다.

2.2.3 각과 축(Angle and Axis) 이 오일러 회전 정의로 인해, 어떤 방위도 세 개(위도, 경도, 사이각)로 표현할 수 있게 된다. 위도와 경도는 3차원 벡터로 표현할 수도 있다. 두 객체의 방위의 중간 값은 각 객체끼리 방위의 회전으로 표현하는데 이 회전의 축은 외적으로 구한다. 두 객체의 사이각은 내적의 역 코사인을 취하여 결정한다. 하지만 일련의 회전을 누적할 때는 쉽게 사용할 수 없다. 그러나, 이 표현법에 포함된 정보는 연산들이 쉽게 구현되는 형태로 나타낼 수 있는데, 이것을 사원수(Quaternions)라고 한다.

2.2.4 사원수(Quaternions) 는 도저히 모르겠습니다.

2.2.4 사원수(Quaternions)

2.2.4 사원수(Quaternions)