본문 바로가기
dev

[Unity] 게임 수학 - 내적 (Dot Product)

by #### 2022. 9. 2.
반응형

일반적 정의

  • 두 벡터의 각 성분끼리의 곱의 합
  • 두 벡터의 크기를 곱하고 그 결과에 두 벡터 사이의 각에 대한 코사인을 곱한 것
  • 두 개의 벡터가 있을 때 한 벡터의 방향으로 나머지 하나를 투영시킨 것과 다른 한 벡터의 크기의 곱
  • 내적 연산은 벡터 두 개를 하나의 스칼라 값으로 변환시키는 연산

 

두 벡터 A, B가 존재할 때 벡터 A를 벡터 B에 투영한 길이

벡터 A를 벡터 B에 투영한 길이에 벡터 B의 단위벡터를 곱해 주면 벡터 A를 벡터 B에 투영한 벡터를 얻을 수 있습니다.

 

Unity Documentation - 내적

내적 연산은 두 벡터를 받아 스칼라를 반환합니다. 이 스칼라는 두 벡터의 크기를 곱하고 그 결과에 두 벡터 사이의 각에 대한 코사인을 곱한 것과 같습니다. 두 벡터 모두 노멀라이즈 벡터일 경우 코사인은 근본적으로 첫 번째 벡터가 두 번째 벡터의 방향으로 얼마나 기울었는지를 나타냅니다(또는 그 반대도 성립합니다. 즉 파라미터의 순서는 상관이 없습니다).

계산기를 사용하면 각도를 찾아 그 각도에 해당하는 코사인을 찾기가 매우 쉽습니다. 그러나 아래 다이어그램에 나타난 것처럼 몇몇 주요 코사인 값에 대해 직관적으로 이해하고 있으면 유용합니다.-

내적은 매우 간단한 연산으로 일부 상황에서는 Mathf.Cos 함수 또는 벡터 크기 연산을 대신하여 사용할 수 있습니다(정확히 동일한 일을 하지는 않지만 때로는 얻을 수 있는 효과가 동일합니다). 그러나 내적 함수 연산은 CPU 시간이 훨씬 적게 걸리며 따라서 유용한 최적화 방법이 될 수 있습니다.

 

참고

https://docs.unity3d.com/kr/530/Manual/UnderstandingVectorArithmetic.html

 

벡터 연산 이해 - Unity 매뉴얼

벡터 연산은 3D 그래픽스, 물리 연산 및 애니메이션에 있어 핵심적이며 Unity를 최대한 활용하기 위해서는 벡터 연산을 깊이 이해하는 것이 유용합니다. 여기서는 주 연산 및 유용하게 사용할 수

docs.unity3d.com

 

반응형

'dev' 카테고리의 다른 글

[Unity] 2D Circle Mask Shader  (0) 2022.09.26
[Unity] Batch Breaking Cause  (1) 2022.09.05
[Unity] IL2CPP vs Mono  (0) 2022.09.01
[Unity] Dictionary의 Key에 Enum을 사용했을 때의 Boxing 이슈  (0) 2022.08.31
[Unity] UniTask  (0) 2022.08.29

댓글