검색 여닫기
검색
메뉴 여닫기
543
253
4
2.1천
noriwiki
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
특수 문서 목록
파일 올리기
환경 설정 메뉴 여닫기
notifications
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
user-interface-preferences
한국어
개인 도구
로그인
Viewing transformation 문서 원본 보기
noriwiki
문서 공유하기
다른 명령
←
Viewing transformation
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
[[분류: 그래픽스 파이프라인]] == 개요 == [[카메라]]의 위치와 원점을 잡는 과정이다. 좌표공간의 카메라는 3개의 변수들을 가진다. 위치, 카메라의 시선의 방향, 그리고 카메라의 위쪽 방향. 쉽게 설명하자면 어떤 사물을 바라보는 사람의 머리는 위치, 사물로의 방향, 정수리의 방향으로 나타내는 것을 말한다. 이러한 변수들은 유저가 입력하게 되고, [[월드 좌표계]]에서 할당된다. == 수식 == [[파일:Viewing Transformation.png|섬네일]] 카메라의 위치를 <math>e=(x_e,y_e,z_e) </math> <br> 카메라가 향하는 방향을 <math>g=(x_g,y_g,z_g) </math><br> 카메라의 위쪽 방향을 (정수리 방향) <math>t=(x_t,y_t,z_t) </math> 라 정의하자<br> 이때 이런 값들은 사용자가 입력하는 것이다. (예를 들어 사용자가 마우스로 고개를 돌린 상황) 또한 이러한 값들은 [[월드 좌표계]]에서 정의된다. <br> 왜냐하면 Viewing Transformation은 월드 좌표계에서 [[카메라 좌표계]]로 옮기는 좌표계이기 때문이다. 이제 할 일은 카메라를 중심으로 하는 새로운 [[기저 벡터]]들을 설정하는 것이다. 기저 벡터를 잡는 다는 것은 쉽게 생각해서 카메라를 중심으로하는 새로운 좌표축들을 설정한다고 생각하면 된다. 그래야 이 좌표축들을 중심으로 사물들의 위치를 나타낼 수 있다.<br> 이제 우리는<br> <math>w=-\frac{g}{\lVert g \rVert}</math><br> <math>u=\frac{t*w}{\lVert t*w \rVert}</math><br> <math>v=w*u</math><br> 로 새로운 좌표축을 세울 수 있다. 당연히 세 기저 벡터들은 서로 수직이며 새로운 좌표축을 정의한다. == 행렬 == [[Homogeneous Matrix]]를 통해서 나타내면 다음과 같다. <br> 첫번째로 카메라 위치 e를 [[월드좌표계]]의 원점으로 이동시킨다<br> 다음으로 u, v, w를 x, y, z와 정렬되도록 변환한다. [[변환 행렬]] [[역행렬]]참고 (orthogonal 형렬의 역행렬은 transpose 행렬과 같다.)<br> <math> M_{view} = \begin{bmatrix} u & v & w & e \\ 0 & 0 & 0 & 0 \end{bmatrix}^{-1} = \begin{bmatrix} x_u & y_u & z_u & 0 \\ x_v & y_v & z_v & 0 \\x_w & y_w & z_w & 0 \\0 & 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} 1 & 0 & 0 & -x_e \\0 & 1 & 0 & -y_e \\0 & 0 & 1 &-z_e \\0 & 0 & 0 & 1 \end{bmatrix} </math>
Viewing transformation
문서로 돌아갑니다.