본문 바로가기

전체 글330

12. Projection, Screen 변환 행렬 투영 변환이란? - View 좌표계를 Projection 좌표계(NDC)로 변환하는 것 - 원근투영, 직교투영이 있으며 원근투영을 주로 사용 Near과 Far의 개념 near과 fat는 z축에 위치하며, 그 사이 범위의 z값을 가진 물체들을 카메라로 표현한다 - 카메라 각도는 FOV(Field Of View), 화각이라고도 불린다. - 유니티 엔진에서는 이 화각을 변경할 수 있다. - 투영 좌표계에서는 모든 것을 비율로 생각한다. - Z값, 즉 얼마나 카메라에서 멀리 떨어져있냐가 관건 카메라 각도가 90도라면? X = X/Z Y = Y/Z 비례식에 따라 Z값을 X, Y 각각에 나눠주면 된다. - a는 알 수 있으므로 비례식을 통해 b도 구할 수 있다. 그대로 늘리면? - NDC 좌표계의 정사각형 물체를 .. 2023. 1. 23.
11. World, View 변환 행렬 좌표변환의 순서 Local -> World -> View -> Projection -> Screen (Projection과 Screen은 다음 글에서 작성 예정) 로컬은 말 그대로 물체 A를 기준으로 한 좌표계를 의미한다. 월드행렬은 물체마다 다 따로 따로 있음 어떤 행렬의 좌표를 나타내는 것은 월드행렬이며, 따라서 물체마다 독립적으로 존재한다 어떤 물체 A의 로컬에 월드행렬을 곱하면 내가 원하는 위치와 각도, 크기로 배치가 된다. 카메라의 경우도 월드행렬을 곱해서 월드에 위치하게 해준다. 뷰 행렬이란 카메라의 기준을 원점으로 잡고 카메라가 찍는 방향을 Z로 잡는 뷰 행렬을 연산해주게 된다. 1. Local - 모델러가 만들어주는 기본 좌표계 - 모델들의 구조를 잡는 좌표 2. World - 월드의 좌표.. 2023. 1. 22.
10. 좌표계 변환 행렬 우리가 x, y라고 하는 것은 사실 해당 좌표계(A 좌표계)의 기저 벡터 u1, v2에 각각 x성분, y 성분을 곱한 것이다. 즉, (x, y) = (x * u1) + (y * v1)이라고 볼 수 있다. *기저 벡터 u1, v1은 그 좌표계의 x방향, y방향을 가리키는 단위 벡터를 의미한다. 그런데 여기서 좌표계 B의 등장? 좌표계는 자기 자신만의 x방향, y방향에 대한 기저 벡터를 가지고 있을 것이다. (u2, v2) 좌표계 변환을 하는 이유? 카메라 좌표의 경우 현재 좌표에서 카메라의 위치에 대해 좌표계를 변환해야 한다. 이 경우 물체 O는 A 좌표(현재 좌표)기준에서 B 좌표(카메라 좌표)기준으로 변환해야 한다. 여기서 AM = AB + BM이 되고 AM은 아래와 같이 성분을 분리할 수 있다. 그럼.. 2023. 1. 22.
9. SRT 변환 행렬 행렬을 배우는 이유는 벡터를 변환시키기 위한 것 벡터 변환의 종류는 아래 3가지가 있다. S(Size) : 크기 R(Rotation) : 회전 T(Translation) : 이동 벡터와 행렬을 곱함으로써 원하는 변환이 가능하다 1. 이동 행렬 (Translation Matrix) - 이동하려면? x, y, z에 값을 더해줘야 한다 - 그런데 행렬곱의 계산 과정은 x, y, z 각각의 요소에 다른 요소들도 같이 묶여 있다 - 그래서 4차원 요소 w를 추가한다 *동차 좌표계 - 벡터의 3요소 (x, y ,z)에 w를 추가한다. - w를 추가함으로써 4차원 벡터가 되고, 다른 축에 관여받지 않는 값을 추가할 수 있다. 임의의 벡터 (x, y, z, 1)에 (a, b, c) 만큼 이동하려면? - 위와 같이 행렬.. 2023. 1. 21.