물체의 수학 I : 이동 변환의 구현 원리

공간에서 물체는 어떻게 움직이는지 알아봅시다.

벡터 공간은 공간이라는 말을 쓰지만 현실 세계의 공간과는 다른 개념입니다. 벡터 공간은 어떤 대상의 성질을 표현하는 데이터이죠. 하지만 게임은 벡터 공간으로 현실 세계의 공간을 만들어야 합니다. 어떻게 구현할 수 있을까요?

답은 공간의 차원을 하나 더 늘리는 데 있습니다.

예를 들어 3차원 공간에서 3차원의 물체를 다루려면, 3차원으로 물체를 표현하고 확장한 1차원으로 이동을 구현해 총 4차원 공간을 활용하면 됩니다.

게임 제작의 바탕에는 벡터 공간을 크게 만들고, 이를 물체 구성과 이동 구성의 두 부분 공간으로 나누어 관리하는 시스템이 있습니다.

벡터 공간 (4차원)
├── 아핀 공간          → 물체를 표현하는 "점(Point)"들의 공간
└── 이동 벡터 공간     → 이동의 방향과 크기를 나타내는 "벡터"의 공간

물리학에서 말하는 벡터(크기+방향)가 바로 이동 벡터 공간의 원소입니다.

💡 벡터는 용도에 따라 물체를 구성하는 점(Point) 과 물체를 이동하는 이동 벡터 로 나뉩니다.


점과 벡터의 관계

현실 세계에서 힘에 의해 물체가 이동하듯, 게임에서도 물체는 이동 벡터의 크기와 방향에 따라 이동합니다. 두 공간은 분리되어 있지만 서로 교환이 가능합니다.

점 + 벡터 = 점      (p1에서 v만큼 이동하면 p2)
점 - 점   = 벡터    (p1에서 p2까지의 이동벡터 v)

직관적으로 보면 점은 위치를, 벡터는 이동량을 알려줍니다.


가상 공간에서 물체가 이동하는 원리

앞서 설명했듯이 게임에서 보이는 3차원 공간은 실제로는 4차원 공간으로 구성되어 있으며, 게임 공간은 움직이지 않으므로 4차원 중 3차원만 사용합니다. 이러한 중심 공간을 월드 공간이라고 합니다.

물체는 아핀 공간의 점들로 구성되며, 이 점들을 관리하기 위한 공간이 필요하죠. 물체를 담는 공간을 로컬 공간이라고 하며, 이 역시 4차원 공간으로 구성돼있습니다. 중요한 건 로컬 공간은 물체와 함께 항상 따라다닙니다.

이러한 개념을 통해 한 가지 중요한 사실을 알 수 있습니다. 물체를 월드 공간으로 배치하는 과정은 물체를 구성하는 점을 월드 공간으로 이동시키는 것처럼 보이지만, 실제로는 월드 공간 위에 로컬 공간을 덮어 복사하는 방식입니다. 이는 마치 종이 위에 그림을 그려놓고, 그림 대신 종이를 움직이는 것처럼요.

이러한 4차원 공간의 구현은 눈에 보이지 않기 때문에 플레이어는 인지할 수 없습니다.

게임 제작을 위해 벡터 공간은 대상과 이동을 함께 구현하는 기법을 사용하며, 게임을 구성하는 모든 물체는 4차원의 공간을 가진다는 점이 중요합니다.


물체의 수학 전체 흐름 정리

점(Point)     →  아핀 공간  →  물체의 위치를 구성
벡터(Vector)  →  이동 공간  →  물체의 이동을 표현
로컬 공간     →  물체와 함께 움직이는 좌표계
월드 공간     →  게임 세계의 고정된 좌표계

참고자료