Game Dev게임 수학

Transform, 공간, 좌표계

local, world, view, clip space가 각각 어떤 의미를 가지는지와, transform을 읽을 때 어떤 공간에 있는 값을 보는지 정리합니다.

마지막 수정 2026년 3월 22일

기본 패턴

text
local -> world -> view -> clip -> screen

설명

  • 게임 개발에서 좌표계는 "값이 맞냐"보다 "어느 공간에서 맞냐"가 더 중요합니다. 같은 (0, 1, 0)도 local up인지, world up인지, camera 기준 위쪽인지에 따라 의미가 달라집니다.
  • local space는 오브젝트 자신의 기준이고, world space는 씬 전체의 공통 기준입니다. view space는 카메라 기준, clip/screen space는 최종 렌더링에 가까운 공간입니다.
  • transform 문제의 대부분은 계산식이 틀려서가 아니라, 서로 다른 공간의 값을 섞어서 생깁니다. 예를 들어 local offset을 world 좌표처럼 더하거나, camera 기준 벡터를 object 기준으로 해석하면 결과가 어긋납니다.
  • 2D와 3D 모두 이 사고가 중요합니다. UI 앵커, minimap 좌표, aiming ray, projectile spawn, billboard 계산도 결국 "어느 공간에서 계산하고 어느 공간으로 넘기느냐"의 문제입니다.
  • 좌표계를 이해한다는 것은 행렬 공식을 암기하는 것보다, "지금 이 값은 누구 기준으로 정의된 값인가"를 습관처럼 묻는 것입니다. 그 질문만 잘해도 절반 이상의 transform 버그가 줄어듭니다.

짧은 예제

text
무기 muzzle 위치는 캐릭터 local offset으로 잡는다
발사 방향은 캐릭터 world forward로 변환한다
카메라 조준점은 screen -> world 변환이 필요하다

빠른 정리

공간의미
local오브젝트 자신의 기준 좌표
world씬 전체의 공통 기준 좌표
view카메라가 원점인 좌표
clip투영 이후 clipping 직전 좌표
screen최종 픽셀 또는 화면 기준 좌표

주의할 점

좌표계 버그는 숫자가 조금 틀린 정도로 보이지만, 실제 원인은 공간을 섞어 쓴 경우가 많습니다. 디버깅할 때는 식을 줄이기보다 먼저 각 값에 "local/world/view 중 무엇인가" 라벨을 붙여 보는 편이 더 빠릅니다.

참고 링크

2 sources