230919 Projection Transformations

aliceshard·2023년 11월 21일
0
  • Projection: 원본 m차원 공간에서 더 낮은 차원의 공간 n차원으로 점들을 옮겨오는 것
    1) Orthographic: View plane과 평행하게 점들을 가져오는 것. Z 값을 버린다.
    2) Perspective: 한 점에 수렴하는 방향으로 점들을 가져오는 것.

  • Projection Environment
    오른손 법칙의 좌표계에서, 사용자의 눈이 +z 축에, view plane은 원점을 지나는 xy plane으로 고정된다.

  • Orthographic Projection (Parallel projection)
    COP(Center of Projection)이 무한한 거리의 점에 있으며, 사영시 거리와 각도를 유지한다.
    그림 작업이나 전개도를 그릴 때 유용하다.
    구현은 단순히 현재 위치에 대해 z=0z=0을 만드는 것으로부터 나온다.

    일반적으로는 위치 하나를 나타내는데는 4차원 벡터가 사용되지만, 4번째 요소는 언제나 1을 유지한다. 따라서 목적에 따라서 MM의 4번째 column을 사용해 원하는 벡터를 사영 시킬 수 있다.

(Z=10으로 사영, X=2로 사영, Y=2로 사영)

  • Perspective Projection

    실제로 우리 눈은 두 개의 평행한 직선을 보고 평행하게 보지 않는다. 이는 핀홀 카메라의 작동과 유사한 원리인데, 핀홀을 통과한 뒤 뒤집어진 상은 뇌가 알아서 복원해주고 있기 때문에 우리는 뒤집히지 않은 상을 보고 있는 것.

    컴퓨터에서는 직접 상을 뒤집고 그림을 복원하는 대신 view plane에 모든 점들이 맺히도록 하는 방식으로 처리가 된다.

    여전히 z=0z=0가 view plane이라는 기준은 똑같이 유지한다. 따라서 실제 조정하는 값들은 x,yx,y 점들만 있으면 충분하다.

    그러나 문제점은, 이런 변환을 하는 연산은 항상 자기 자신을 변환 배열에 포함시켜야 한다는 점이다. 이러면 모든 공간 내에 있는 점들이 다 다른 MM을 갖게 되어 계산이 매우 비효율적으로 변한다.

    여기서 우리는 원래 변환하려는 점에 대해 대응되는 homogeneous point를 사용할 것이다. 이제 모든 점에 대해서 독립적인 변환 배열이 정의될 수 있다. 물론 4번째 요소는 이후 perspective division이라 불리는 과정을 통해서 1, 2, 3 요소에 대해 나눗셈을 할 것이다. dd는 COP와 view plane의 수직 거리이다.

  • Focal length

    dd의 다른 이름은 focal length이다. focal length가 길어질수록 이미지가 더 크게 보이고 좁은 시야각을 갖게 된다. 핀홀 카메라 모델에서는 센서 평면의 크기는 고정한 채 렌즈만 바꿔서 길고 홀쭉한 시야 절두체(view frustum)을 갖게 할지, 혹은 짧고 뚱뚱한 시야 절두체를 갖게 할지에 대응된다고 생각하면 된다.
    다소 헷갈리기 쉽지만 위 그림을 머리속에 넣어두면 쉽게 이해할 수 있다.

  • Clipping plane

    다 좋아보이지만 그렇다고 공간 내에 모든 점에게 무지성으로 MM을 가하면 카메라 뒤에 있는 점들 (Z>dZ > d) 까지도 다 view plane에 달라붙게 될 것이다. 여기서 Clipping plane 개념이 등장한다. 먼저 시야 절두체 내부에 있는지 판단하기 쉬운 형태로 점들을 변환시키고(x=±1,z=±1x=\pm 1, z=\pm 1), 변환된 점들이 이 밖에 있으면 렌더링 하지 않는다.

    실제로는 두 변수 α,β\alpha, \beta에 대해 매개변수화 된 NN을 새롭게 정의하고, MorthoM_{ortho}를 matmul 함으로써 쉽게 정의된다.

  • 기타
    사실 orthographic projection은 perspective projection에서 dd \rightarrow \infty 경우에 해당한다.
profile
안녕하세요.

0개의 댓글