카테고리 없음

벡터의 내적(Inner Product)과 외적(Cross Product)

근본넘치는개발자 2024. 12. 12. 23:58

오늘은 내적과 외적에 대해 정리해보고자 합니다.

 

캐릭터가 어느 쪽을 향하고 있는지, 어디로 움직이고 있는지,

얼마나 빨리 움직여야 하는지 등 

게임 속에서 많은 요소들이 벡터 연산을 기반으로 하고 있습니다.

 

분명 고등학교랑 대학교 수업에서 배운적이 있지만

설명하려니 개념정리가 안되어 있는 느낌이어서 작성해봤습니다.

 

벡터 

크기와 방향을 모두 가지고 있는 물리량

 

스칼라 

크기만 있고 방향이 없는 물리량

 

내적

내적은 두 벡터의 곱

두 벡터가 수직일때 내적은 0 이다.

 

벡터의 내적의 결과값은 벡터가 아닌 스칼라

 

 

언제 사용할까 

 

내적을 사용하면  두 백터 사이의 각도를 구할 수 있습니다.

 

두 벡터 간의 각도 계산을 통해 플레이어가 

적을 바라보는 방향을 확인할 수도 있고,

물체가 플레이어 보다 앞에 있는지 뒤에 있는지 판단 할 수도 있습니다.

 

더보기

플레이어의 시선(forward)를 중심으로 좌, 우 90도가 넘어가는 순간 코사인 값은 음수를 갖기에
플레이어 시선의 벡터와 target의 위치벡터를 내적해서 양수값이면 플레이어의 정면, 음수값이면 플레이어의 후면에 존재

 

그래픽에서 빛의 음영 계산을 할때도 사용된다고 합니다.

(법선 벡터와 빛 방향 벡터의 내적으로 음영 강도 결정)

 

외적 

두 벡터에 수직인 새로운 벡터를 구하는 방법.

두 벡터의 크기와 사이 각의 사인값에 비례햔다.

 

외적의 결과값은 벡터

 

 

언제 사용할까 

 

플레이어의 좌우를 판별할 때 사용합니다.

 

더보기

외적은 중앙(0)을 기준으로 좌(-1)·우(1) 값을 알 수 있다

마무리 

오늘은 간단하게 백터의 개념와 내적, 외적에 대해 정리해봤습니다.