2026. 4. 24. 03:35ㆍ수학
우선 여러 좌표계를 사용하는 이유는 특정 정보는 특정 기준계의 맥락에서만 알수있기 때문이다
여러 좌표계 예시
1. 월드 스페이스 -> 모든 좌표계의 기준이 되는 최상위 공간. "절대 위치"란 곧 월드 공간 좌표를 말함.
월드의 중심(0, 0, 0)과 고정된 XYZ 축을 가집니다.
다른 모든 객체들의 위치는 최종적으로 이 월드 공간을 기준으로 평가됨
세계 좌표계는 다른 좌표계에 대한 "전역적" 기준 틀을 제공하는 특수 좌표계이다
그래서 세계 좌표계는 전역 좌표계 또는 보편 좌표계라고도 불린다
2. 객체 공간 (Object Space) -> 특정 오브젝트에 붙어서 같이 움직이는 공간. "앞, 뒤, 왼쪽, 오른쪽"은 오브젝트 공간 개념.
예시로 앞으로가 가라라는 의미는 이제 해당 객체 공간 내에서 내리는 지시이다
3. 카메라 좌표계 -> 렌더링에 사용되는 시점과 연관된 객체 공간

4. 수직 공간 ->Object Space와 World Space의 중간 단계를 설명하기 위해 사용하는 개념적인 용어 (이건 게임 프로그래밍에서 사용되는 언어)
원점(0, 0, 0)은 객체의 중심에 있지만, XYZ 축의 방향은 월드 공간의 축과 완벽하게 평행한 상태를 유지하는 좌표계.
축 방향 = 월드 공간
원점 위치 = 오브젝트 공간
World→Upright: 이동(Translation)만
Upright→Object: 회전(Rotation)만

좌표 공간 변환
어떤 공간의 좌표를 다른 공간의 좌표로 변환하는 방법
예시 로봇 과 샌드위치의 위치를 월드 좌표로 알고있음 그러나 샌드위치가 내 앞에 있는가? 라는 질문을 하면 이제 오브젝트 좌표로 표현을 해야함 . 그리고 어깨의 조명 위치는 오브젝트 좌표로 알고 있지만, 장면을 밝히려면 월드좌표로 변환 필요
두 가지 시각
능동 변환 -> 좌표계는 고정, 오브젝트가 움직임 -> 로봇을 원점에서 월드 좌표 내 위치로 이동
수동 변환 -> 오브젝트는 고정, 좌표계 자체가 움직임 -> 카메라를 원점으로 이동
예시
능동 -> Object -> World
1. 회전 . 원점을 기준으로 회전 -> 2, .이동 나중 (원하는 위치로 평행 이동)
수동 World -> Camera
이동 먼저: 카메라를 원점으로 옮기기 -> 회전 (카메라 축을 월드 축에 맞추기 )
기저 벡터 -> 임의의 벡터 v를 기저 벡터 p,q,r의 선형 조합으로 표현할 수 있다
v = x·p + y·q + z·r
기저벡터는 "측정 기준축"이다. 일반적으로 [1,0,0], [0,1,0], [0,0,1]을 쓰지만, 다른 방향/길이도 가능.
Object-> World 변환 공식
원점 o , 기저벡터 p,q,를 알 떄 , 오브젝트 좌표 (BX,BY)-> 월드 좌표 W
w = o + bx·p + by·q
예: 로봇 어깨 조명이 오브젝트 좌표 (-1, 5)에 있고, 로봇 원점이 (4.5, 1.5), p=[0.87, 0.50], q=[-0.50, 0.87] 이면:
w = (4.5, 1.5) + (-1)×[0.87, 0.50] + 5×[-0.50, 0.87] = (1.13, 5.35)
중첩 좌표계 (Nested Coordinate Spaces) -> 계층적으로 조합된 좌표계들
World
└─ Sheep (Object)
└─ Head
└─ Ear
- 좌표계는 트리 구조
- 각 노드는 자기 기준(local space) 을 가짐
모든 좌표는 “상대적”이다
- 귀 위치 → 머리 기준
- 머리 위치 → 몸 기준
- 몸 위치 → 월드 기준
World = Parent * Local
worldPos = body * head * ear * localPos;
변환은 위에서 아래로 누적됨 순서가 바뀌면 완전히 다른 결과