Notice
Recent Posts
Recent Comments
Link
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
Tags
more
Archives
Today
Total
관리 메뉴

MOONSUN

[게임 수학] 벡터의 내적(Dot product) 과 외적(Cross product) 본문

D3D

[게임 수학] 벡터의 내적(Dot product) 과 외적(Cross product)

MoonSun_v 2025. 9. 18. 16:36

 

게임 프로그래밍을 할 때 아주 기본 지식인 내적과 외적을 게임 프로그래밍 관점에서 간단하게 정리 해보고자 한다. 

 

 

간단요약.

내적: 두 벡터가 얼마나 “같은 방향”인가?   (cos 사용)
외적: 두 벡터가 얼마나 “엇갈려 있는가?”   (sin 사용)
         평행 → 외적 = 0
         직각 → 외적 = 제일 큼

 

 

1. 벡터의 내적 (Dot product)

 

1-1. 정의 

∣a∣, ∣b |  벡터의 크기 (길이)
  θ 두 벡터 사이의 각도

 

각 성분이 위와 같을 때, 

 

내적은 " 각 성분 곱의 합 " 으로 계산할 수 있으며

 

동시에 " 벡터 크기 × 벡터 크기 × cosθ " 로도 표현 

 

내적은 n차원 벡터에서도 성분별 곱의 합으로 계산할 수 있으며, 내적의 결과는 스칼라(숫자 하나)이다.

 

 

 

 

1-2. 기하학적 의미

  • |u|, |v|  =  벡터 크기(길이)
  • θ          =  두 벡터 사이 각도
cos 값에 따라 결과가 달라진다. 
방향 각도 cosθ 내적 
같은 방향 cosθ = 1 내적
직각 cosθ = 0 내적 =
반대 방향 cosθ = -1 내적

 

u 또는 v 한쪽의 길이가 1이면 반대쪽에 투영한 길이가 된다.
둘 다 1이면 결과는 cos θ 가 된다. 

 

 

1-3. 내적 활용

  • 각도 판별

두 벡터 사이 각도 구할 수 있음
(플레이어와 적의 시야각 판정에 활용)

  • 조명 계산
    법선 벡터(N)와 광원 방향(L)의 내적

표면이 빛을 얼마나 받는지 계산 가능

(Lambert 조명 등..)

  • 투영(Projection)
    한 벡터를 다른 벡터 방향으로 뽑아낼 때 사용

 

 

 

2.  벡터의 외적 (Cross product)

2-1. 정의 

외적의 결과는 새로운 벡터다. (내적은 스칼라였는데, 외적은 벡터!)

 

 

2-2. 기하학적 의미

  • 크기 : 두 벡터가 만드는 평행사변형의 넓이
  • 방향 : 두 벡터에 동시에 수직인 방향    (오른손 법칙으로 결정)
즉, 외적은 “두 벡터에 모두 직각인 벡터" 를 구해준다.

 

 

 

2-3. 외적 활용

  • 법선 벡터(Normal) 구하기
    • 3D 모델에서 삼각형 면의 두 변을 외적하면 -> 그 면에 수직인 법선 벡터가 나옴
    • 빛 반사, 충돌 계산에 필수

 

  • 좌표계 정의
    • 카메라의 앞/오른쪽/위쪽 벡터를 외적으로 계산

 

  • 회전축 구하기
    • 두 벡터 사이를 회전해야 할 경우, 외적으로 회전축 계산 가능

 

 

3. 내적 vs 외적 비교

구분 내적 (·) 외적 (×)
결과 스칼라(숫자) 벡터
의미 방향의 유사도 두 벡터에 모두 수직인 방향
활용 각도, 조명, 투영 법선 구하기, 좌표계, 회전축