티스토리 뷰
1. 변환 파이프 라인 ( Transformation pipeline )
▶ 변환 파이프 라인
: 3차원 모델 좌표계의 정점들을 2차원 화면 좌표계로 변환하는 과정
( 3D 공간 상의 Object 들이 2D 화면으로 보여지는 과정 )
파이프 라인은 기하적인 데이터를 하나의 물체나 장면으로 표현하는 역할을 하며, 그로부터 2차원의 이미지를 만든다.
▶ 6단계
① 모델 공간
② 전역 공간
③ 시점 공간
④ 절단 공간
⑤ 정규화 된 장치좌표계
⑥ 윈도우 좌표계
(1) 모델 공간 ( Model Space / Local Space )
: 로컬 공간으로, Object Pivot이 Local 좌표계 상에서 원점에 존재하는 공간이다.
하나의 캐릭터를 표현할 때 ' 모델 공간 ' 이라는 하나의 좌표계에서 정점의 위치를 저장한다.
(2) 전역 공간 ( World Space )
: 3차원 공간 상의 최종적인 원점 좌표계이다.
Object를 공간 상에서 특정한 World로 이동 및 회전, Scale 된 좌표이다.
Object 를 World 곳곳에 놓는 작업이다.
Model Matrix ( 모델 행렬 ) 로 변환이 이루어진다.
(3) 시점 공간 ( Camera Space )
: 카메라가 바라보는 공간을 시점 공간이라 한다.
시점이 그 공간 좌표계의 원점이 된다. ( = 카메라가 원점이 된다. )
World 상에서 놓여진 Object 를 바라보는 카메라의 시점으로 옮긴 공간이다.
카메라 앞쪽에 있는 모든 Object 를 볼 수는 없다. ( 우리 눈으로 앞쪽에 있는 모든 물체를 볼 수 없는 개념과 같다. )
Position , Rotation , Scale 이 적용된다.
View Matrix ( 뷰 행렬 ) 의 곱하기 연산으로 이루어진다.
(4) 절단 공간 ( Clip Space )
: 어떤 물체가 보여지는 위치에 있는지, 그렇지 않은지를 판단한다.
시야절두체를 통해서 이루어진다.
카메라의 공간 밖 ( 보여지는 공간 밖 ) 에 위치해 있어서 보여지지 않는 Object 를 걸러낸다.
카메라의 뷰에 따라서 Perspective View / Orthogonal View 를 적용한 상태로 만드는 변환 공간이다.
Projection Matrix ( 투상 행렬 ) 적용으로 이루어진다.
(5) 정규화된 장치 좌표계 ( Normalized Device Coordinates )
: 절단 공간에서 측 정렬된 육면체의 크기인 W 를 1로 놓으면 정규화된 장치 좌표계를 얻을 수 있다.
정규화된 장치 좌표계를 기준으로 표현 된 ( x , y , z ) 좌표계에서 z 값을 0 으로 놓아서 좌표 ( x , y ) 를 얻는다.
Device 에서 사용하기 쉬운 Normalized 된 형태의 좌표계로 변환 시키는 연산이다.
( x , y , z , w ) → ( x/w , y/w , z/w , 1 )
(6) 윈도우 좌표계 ( Screen Space )
: 정규화된 장치 좌표계를 실제 모니터 상의 ( x , y ) 좌표로 변환해야 하는데 이를 뷰 포트 ( ViewPort ) 변환이다.
정규화된 장치 좌표계에서 게이머가 설정한 뷰 포트의 크기를 곱하여 실제 윈도우의 ( x , y ) 좌표를 얻어낸다.
절단 공간의 좌표들을 Screen 좌표계, 즉 화면에 보이는 공간으로 이동시키는 변환이다.
-1.0 ~ 1.0 사이에 있었던 점들이 디바이스의 픽셀 화면 비율로 맵핑 ( Mapping ) 이 이루어진다.
Viewport Transformation ( 뷰 포트 변환 ) 연산으로 이루어진다.
* 시야절두체 : 실제 카메라가 비추는 공간 ( 피라미드 모양 )
카메라에 의하여 보일 수 있는 것들을 담는 범위
2. Transformations Function
유니티 엔진을 잘 쓰기 위해서는 변환 파이프 라인의 공간 변환 개념들을 확실하게 이해하는 것이 좋다.
'Project > Unity' 카테고리의 다른 글
Unity : Character 움직임 / Animator / 3인칭 카메라 기초 (0) | 2021.04.27 |
---|---|
Unity : Scene 생성 기초 (0) | 2021.04.11 |
Unity : 프로그램 다운로드 (설치) (0) | 2021.03.25 |
- Total
- Today
- Yesterday
- 파이썬for문
- 알고리즘
- SUM함수
- python별찍기
- 백준 별찍기
- 파이썬
- 데이터 모델링
- 네이버클라우드플랫폼
- 파이썬sum
- 파이썬문법
- 백준파이썬
- SQLD 1과목
- NaverCloudPlatform
- SQLD 2과목
- 백준
- 백준별찍기
- 별 찍기
- SQLD40회
- SQLD
- Python
- 40회 SQLD
- SQLD1과목
- Unity GameObject 생성
- range함수
- 파이썬 입출력
- f-string
- 파이썬입출력
- 데이터베이스
- python문법
- BAEKJOON
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |