내적과 외적이 게임에 어떻게 적용되는지
2022. 3. 24. 13:43ㆍ기술 면접
게임 개발에서는 벡터 연산을 자주 사용한다. 그 이유는 벡터로서의 접근이 직관적이고, 방정식이나 복잡한 계산을 피해 문제를 훨씬 쉽고 간단하고 효율적으로 해결되기 때문이다. 벡터연산에서 가장 기본은 내적과 외적이다.
내적
A, B 벡터의 내적은 A 벡터와 B 벡터의 크기를 각각 곱한 다음 사이각의 cosθ 값을 곱한 스칼라 값이 된다. 벡터와 벡터의 내적의 결과는 벡터가 아닌 스칼라 값이다.
- 두 벡터의 사이각을 구할 수 있다
- 플레이어의 방향벡터가 있고, 적이 플레이어 앞에 있는지 뒤에 있는지 판별할 수 있다.
- 플레이어의 시야각안에 들어와 있는지 알 수 있다.
외적
내적과 크게 다른점은 결과값이 스칼라 값이 아닌 벡터로 나온다는 것이다.
- 적이 플레이어 오른쪽에 있는지 왼쪽에 있는지 판별할 때 사용된다.
- 벽에 부딪혀서 미끄러지는 플레이어의 방향을 계산할 때 사용된다.
내적과 외적이 게임에 어떻게 사용되는지 설명해보세요
벡터 연산에서 기본이 되는 것이 내적과 외적입니다. 내적의 결과값은 스칼라 값이고, 외적의 결과값은 벡터로 나오게 됩니다. 내적에서는 두 벡터의 사이각을 구할 수 있어 플레이어의 시야각안에 적이 들어와 있는지 알 수 있고, 플레이어의 방향벡터가 있을 때, 적이 플레이어 앞에 있는지 뒤에 있는지 알 수 있습니다. 외적에서는 적이 플레이어의 오른쪽에 있는지 왼쪽에 있는지 판별하거나, 벽에 부딪혀처 미끄러지는 플레이어의 방향을 계산할 때도 사용됩니다.
'기술 면접' 카테고리의 다른 글
유니티 이벤트 함수 실행 순서 (0) | 2022.03.24 |
---|---|
코루틴(Coroutine) 작동 원리 (0) | 2022.03.24 |
TCP/UDP (0) | 2022.03.24 |
C++과 C#의 차이 (0) | 2022.03.23 |
스마트 포인터(smart pointer) (0) | 2022.03.23 |