월드 스페이스(World Space)와 로컬 스페이스(Local Space)의 차이
- 월드 스페이스
- 씬 전체의 절대 좌표계
- (0,0,0)은 씬의 원점
- 게임 오브젝트가 월드에서 어디에 있는지를 나타냄
- 예) transform.position은 월드 기준 위치를 반환
- 로컬 스페이스
- 부모 오브젝트를 기준으로 한 상대 좌표계
- (0,0,0)은 부모의 위치
- 예) transform.localPosition은 부모 기준 위치를 반환
차이점 요약
구분기준설명
| 월드 스페이스 |
씬(세계) 전체 |
절대 위치, 회전, 크기 |
| 로컬 스페이스 |
부모 오브젝트 |
부모 기준 상대 위치, 회전, 크기 |
벡터의 내적(Dot Product)과 외적(Cross Product) 활용 상황
내적 (Dot Product)
- 두 벡터의 방향 유사도(각도)를 구할 때 사용
- 두 벡터가 얼마나 같은 방향을 보는지 확인할 때 유용
- 예시 상황:
- 시야각 판별 (적이 앞에 있는지 뒤에 있는지)
- 빛과 표면의 각도 계산 (조명 효과)
✅ 외적 (Cross Product)
- 두 벡터에 수직인 벡터를 구할 때 사용
- 주로 면의 법선(Normal) 계산이나 회전 방향 판별에 사용
- 예시 상황:
- 3D 오브젝트의 법선 벡터 계산
- 왼쪽/오른쪽 회전 판별 (예: 조이스틱 방향 처리)
쿼터니언(Quaternion)을 사용하는 이유
오일러 각도의 한계 극복
- 오일러 각도(roll, pitch, yaw)는 회전 표현이 직관적이지만
Gimbal Lock(짐벌락) 현상이 발생해 회전 자유도가 제한될 수 있음.
부드러운 회전(Slerp) 지원
- 쿼터니언은 회전을 부드럽고 연속적으로 보간(Slerp) 가능
연산 효율성과 안정성
- 회전 행렬보다 메모리 효율이 높고
복잡한 연산 없이 회전 누적이 가능
실제 사용 예시
- Unity에서 transform.rotation
- Quaternion.Slerp, Quaternion.LookRotation 같은 API 사용
-
- 현재글20250512 TIL 월드 스페이스와 로컬스페이스 내적과 외적, 쿼터니언
-