1. Look At
행렬에 대한 좋은 점은 만약 3개의 직각(또는 비선형)인 축을 사용하여 좌표 space를 만들면 3개의 축과 이동 벡터와 함께 행렬을 만들 수 있고 어떠한 벡터든지 이 행렬과 곱하여 이 좌표 space로 변환할 수 있다는 것이다. 이것이 정확히LookAt행렬이 수행하는 것이다. 그리고 이제 우리는 카메라 space를 정의하기 위한 3개의 직각인 축과 위치 벡터를 가지고 있으므로 우리만의 LookAt 행렬을 만들 수 있다.
R은 오른쪽 벡터, U는 위쪽 벡터, D는 방향 벡터, P는 카메라의 위치 벡터이다. 위치 벡터가 반대로 되어있음을 알아두어야 한다. 우리는 결국 world를 우리가 이동할 곳의 반대 방향으로 이동시키기를 원하기 때문이다. 이 LookAt 행렬을 우리의 view 행렬로서 사용하여 효과적으로 모든 world 좌표들을 우리가 방금 정의한 view space로 변환할 수 있다.
그런 다음 이 LookAt 행렬은 정확히 주어진 타겟을 바라보고(look) 있는 view 행렬을 생성한다.
'Programming > Soft Renderer_2019' 카테고리의 다른 글
#6 평면의 방정식과 D의 의미 알아보기 (0) | 2019.12.16 |
---|---|
#5 투영 벡터 공식 유도 (0) | 2019.12.16 |
#4 벡터 내적 공식 유도 : a · b = |a| |b| cosθ 유도하기 (0) | 2019.12.16 |
#2 오일러각 입력에 따라 Forward, Up, Right 벡터를 구하고 이를 토대로 3차원 회전 행렬 구하기 (0) | 2019.12.16 |
#1 선형 변환과 행렬의 관계 (0) | 2019.12.16 |