참고 영상 : https://www.youtube.com/watch?v=bYivO9VgN0k&t=2s
벡터의 내적 (Dot Product)
두 벡터가 얼마나 같은 방향을 바라보고 있는가?
두 벡터가 얼마나 같은 방향을 바라보고 있는가를 나타내는 연산입니다. 내적은 두 벡터를 곱하여 스칼라(Scalar) 값, 즉 방향이 없는 크기만 있는 값을 결과로 얻습니다. 이 값은 두 벡터의 방향적 유사성을 나타냅니다. 두 벡터 A와 B가 있을 때, 내적은 기호 '∙'를 사용하여 표기합니다.
✅ 개념 및 공식
✅ 핵심 특징 및 게임 속 활용
내적 결과의 부호만으로 두 벡터의 방향 관계를 직관적으로 파악할 수 있습니다.
- : 두 벡터의 사이각 가 90도보다 작습니다. (같은 방향을 향함)
- : 두 벡터의 사이각 가 90도입니다. (서로 직교)
- : 두 벡터의 사이각 가 90도보다 큽니다. (다른 방향을 향함)
이 특징은 게임에서 다음과 같이 활용됩니다.
- 시야각 판정 : 플레이어 캐릭터의 시야 안에 몬스터가 들어왔는지 확인할 수 있습니다.
- 전방/후방 판정 : 내 뒤에 있는 적인지, 앞에 있는 적인지 판단할 수 있습니다.
- 각도 계산 : 두 벡터 사이의 각도를 정확히 계산하여 특정 각도에 따른 이벤트를 발생시킬 수 있습니다.
- 투영(Projection) : 캐릭터가 경사면에 있을 때, 중력이 경사면 방향으로 얼마나 작용하는지 계산하는 등 특정 방향의 힘을 분해할 때 사용됩니다.
✍️ 예시 문제
Q. 플레이어의 전방 벡터는 F = (0, 0, 1) 입니다. 플레이어를 기준으로 P = (0, 0, 0) 에 있고, 몬스터는 M = (10, 0, 5) 에 위치합니다. 이 몬스터는 플레이어의 앞에 있나요, 뒤에 있나요?
A.
- 플레이어에서 몬스터를 향하는 방향 벡터 PM을 구합니다.
- PM = M - P = (10, 0, 5) - (0, 0, 0) = (10, 0, 5)
- 플레이어의 전방 벡터 F와 방향 벡터 PM을 내적합니다.
- F · PM = (0 * 10) + (0 * 0) + (1 * 5) = 5
- 결과가 5로 0보다 크므로, 몬스터는 플레이어의 앞에 있습니다.
벡터의 외적 (Cross Product)
"두 벡터를 모두 포함하는 평면에 수직인 새로운 벡터는?"
외적은 두 벡터를 곱하여 새로운 벡터(Vector)를 결과로 얻는 연산입니다. 이 새로운 벡터는 원래의 두 벡터 에 동시에 수직(Perpendicular)이라는 매우 중요한 특징을 가집니다.
주의 : 외적은 3D 공간에서만 의미가 있습니다.
✅ 개념 및 공식
✅ 핵심 특징 및 게임 속 활용
- 법선 벡터 (Normal Vector) 계산 : 3D 모델을 구성하는 가장 작은 단위인 폴리곤(삼각형)이 어느 방향을 바라보고 있는지 나타내는 법선 벡터를 구할 때 사용됩니다. 이는 3D 렌더링 시 빛을 어떻게 반사시킬지 결정하는 광원 및 셰이딩(Shading) 처리의 핵심입니다.
- 좌/우 판정 : 특정 오브젝트가 내 캐릭터의 왼쪽에 있는지 오른쪽에 있는지 판별할 때 사용됩니다.
- 회전축 계산 : 캐릭터가 현재 방향에서 목표 방향으로 회전해야 할 때, 가장 효율적인 회전축 벡터를 외적으로 구할 수 있습니다.
✍️ 예시 문제
Q. 3D 공간에 삼각형의 꼭짓점 P0(1,0,0), P1(0,1,0), P2(0,0,1)가 있습니다. 이 삼각형 면의 법선 벡터를 구하세요.
A.
- 삼각형의 두 변에 해당하는 벡터 V1, V2를 구합니다.
- V1 = P1 - P0 = (0-1, 1-0, 0-0) = (-1, 1, 0) V2 = P2 - P0 = (0-1, 0-0, 1-0) = (-1, 0, 1)
- 두 벡터 V1과 V2를 외적합니다.
- V1 × V2 = ( (1*1 - 0*0), (0*-1 - -1*1), (-1*0 - 1*-1) ) = (1, 1, 1)
- 따라서 이 삼각형 면의 법선 벡터는 (1, 1, 1) 입니다. 이 벡터의 방향으로 빛을 반사하게 됩니다.
'CS > 게임 수학' 카테고리의 다른 글
오일러(Euler) 쿼터니언(Quaternion) 짐벌락(Gimbal Lock) (0) | 2025.10.13 |
---|---|
삼각비(SIN, COS, TAN) (0) | 2025.10.09 |
내적을 활용한 몬스터 시야각 판정 (0) | 2025.10.09 |