변환-> 이동, 회전, 크기조절, 등등 (행렬로 관리) : 시험 문제

Basic geometric transformation : 시험문제

- Translation : 이동한 양을 더해준다.

-> 행렬

- Scaling : 원점으로부터 거리가 멀어진다.

- Rotation

basic

1. x-axis rotation

2. y-axis rotation

3. z-axis rotation

Advanced geometric transformation : 시험문제

3D Rotation Type1(축과 평행) -> 평행인 축을 축으로 가져옴 -> 회전 -> 다시 축이 있던 위치로 이동

3D Rotation Type2(임의의 축은 축과 평행하지않음) -> 축은 (x1,y1,z1)과 (x2,y2,z2)을 이어진 선

1. (x1,y1,z1)을 원점으로 가져온다.(Translate)

2. yz 평면에 투영을 시킴 -> 알파 값을 찾을 수 있음

-> 알파값을 이용하여 xz축에 투영. (x축 회전) 

3. xz에 투영된 값을 z축으로 투영 시켜야함.(베타값을 구해서) -> y축 회전

4. 회전 연산

5. 역행렬도 다시 원위치로 만듦

역행렬이 앞에 나오는 이유 -> 행렬의 계산은 뒤에서부터 실행되기 때문이다.

 

회전행렬의 역행렬 -> 이동행렬

 

 

Homogeneous Coordinate in Mathematics : 동차좌표계

-> 연산량이 줄 수 있다.(계산 효율성 개선)

-> 100만개의 버텍스를 scale->rotation->translate하면 총 300만 번의 연산이 들어감

-> 행렬도 3x3으로 곱셈 200만 번, 더하기 100만 번 연산이 필요

-> homogeneous를 사용하면 C=T(이동)R(회전)S(스케일) -> 4x4행렬이 되며 100만 번 의 연산이 한 번 들어감

 

Fixed-point scaling

해당 점을 기준으로 스케일을 키우려면

1. 점을 원점으로 이동시킨다.

2. 스케일을 키운다.

3. 처음 점의 위치로 이동시킨다.

=> 해당 점에서 스케일이 커진것 처럼 보임

 

3D Rendering in Pipeline

1. Modeling Transformation //3D

좌표계

1) Modeling (local) coordinate 각 모델당 1개

2) World coordinate 전체에 1개

 

2. Viewing Transformation //3D

3. Projection Transformation //2D 3D에서 2D로 변환

view는 2가지 방식이 있다.

1) Orthographic : 정확한 수치로 그려준다. 건축에 많이 사용

-> 원본 크기로 그려줌 (정육면체를 그리면 모든 선이 평행해서 만나지못함)

2) Perspective : 실제 보이는 것 처럼 그려준다. 게임에 많이 사용

-> 멀면 작게보이고 가까우면 크게보임 (정육면체 그리면 모든 선이 평행하지않고, 선끼리 만날 수 있다)

실제 카메라 구현을 위해서는

1) 렌즈 굴곡

2) 모션블러

3) DoF

를 구현해야함.

 

4. Viewport Transformation //2D 모니터 크기에 따른 위치값 변경

'학교수업' 카테고리의 다른 글

인공지능개론 5주차  (0) 2022.04.10
컴퓨터 구조 5주차  (0) 2022.04.09
윈도우즈프로그래밍 4주차  (0) 2022.04.01
컴퓨터구조 4주차  (0) 2022.04.01
컴퓨터 그래픽스 기초 4주차  (0) 2022.03.30

+ Recent posts