이번 글에서는 고2 기하 '공간벡터' 단원으로 컴퓨터공학 진로를 탐구하는 세특 주제를 추천드리겠습니다.
게임에서 적 캐릭터가 등을 돌리고 있을 때 뒤로 몰래 지나가 본 경험, 한 번쯤 있으실 텐데요.
적이 나를 보고 쫓아오느냐, 못 보고 지나가느냐는 게임 안에서 '내가 적의 시야에 들어왔는지'를 컴퓨터가 매 순간 판정한 결과입니다. 그렇다면 게임은 적의 시선과 내 위치만으로 어떻게 '보인다'와 '안 보인다'를 가려낼까요? 이 의문을 풀려면 고2 기하에서 다루는 공간벡터의 내적을 활용할 수 있습니다.
'
공간벡터의 내적과 방향 판정
고2 기하에서는 공간벡터의 내적을 배웁니다. 내적은 두 벡터가 얼마나 같은 방향을 향하는지를 하나의 숫자로 바꾸는 계산입니다.
적 캐릭터의 시선 방향 벡터와, 적에서 나를 향하는 위치 벡터를 내적하면, 내가 적의 정면 쪽에 있는지 옆이나 뒤쪽에 있는지 판단할 수 있습니다. 두 벡터가 비슷한 방향이면 내적이 양수가 되고, 반대 방향이면 음수가 되기 때문입니다.
내적으로 방향을 판정하는 원리를 게임 엔진에 적용하면, 적이 나를 보는지 컴퓨터가 어떻게 판단하는지 수학으로 풀어낼 수 있습니다.
앞쪽인지 뒤쪽인지뿐 아니라 '시야각 안에 들어왔는지'까지 정하려면, 내적을 두 벡터 크기로 나눈 코사인 값을 정해 둔 기준과 비교합니다. 예를 들어 시야각을 90도로 정하면, 코사인 값이 그 기준을 넘는 대상만 '보인다'고 판정합니다. 실제 컴퓨터공학에서는 이런 시야 판정을 적 인공지능이나 카메라 처리에 활용합니다.
고2 기하와 컴퓨터공학을 연결한 추천 주제
추천된 주제는 공간벡터의 내적을 활용한 3D 게임 엔진 시야 판정 알고리즘 비교 — 각도 판정식과 코사인 임계값 방식의 정확도·연산 효율 분석입니다.
시선 방향 벡터와 내적, 코사인 값을 교과 내용으로 정리한 뒤, 각도를 직접 계산하는 방식과 코사인 값을 기준과 바로 비교하는 방식을 정확도와 계산 효율 측면에서 비교하는 탐구입니다.
* 관련 성취기준
탐구 순서 (보고서 목차 추천)
내적이 어떻게 게임 속 '보임' 판정이 되는가 하는 의문에서 탐구를 시작합니다. 교과서의 시선 방향 벡터와 내적, 코사인 값으로 시야 판정의 수학적 기준을 정리한 뒤, 내적 값이 방향의 유사도를 나타낸다는 점을 게임 엔진의 적 탐지와 연결합니다.
그다음 각도를 직접 계산하는 방식과 코사인 값을 기준과 비교하는 방식을 정확도와 계산 효율로 비교하고, 각도 자체보다 기준식 표현이 더 효율적인 이유를 정리합니다. 거리 조건을 함께 거는 복합 판정은 후속 탐구로 진행할 수 있습니다.
탐구 확장 질문
❶ 내적과 코사인 값으로 시야를 판정할 때 시야각을 60도, 90도, 120도로 바꾸면, 잘못 탐지하는 비율은 3차원 좌표 표본에서 어떻게 달라질까?
❷ 자기 자신과의 내적이 벡터 크기의 제곱이 된다는 성질을 함께 써서 대상까지의 거리 제한을 더하면, 근거리 적을 탐지하는 정확도는 어떻게 달라질까?
❸ 게임 엔진과 XR 인터페이스에서 시선 방향 벡터로 가시성을 판정할 때, 프레임 수와 반응 속도 측면에서는 어떤 최적화 전략과 연결될까?
후속 탐구 확장
내적 기반 시야 판정을 분석한 다음에는 방향 판정에 거리 조건을 더한 복합 판정으로 넓힐 수 있습니다. 방향이 맞더라도 너무 멀면 보이지 않도록 거리 제한을 함께 걸 때, 탐지 정확도가 어떻게 달라지는지 비교하는 후속 탐구로 진행할 수 있습니다.
나아가 이 시야 판정 원리는 게임을 넘어 XR 인터페이스의 시선 추적이나 적 인공지능의 반응 범위 설계로도 확장할 수 있습니다. 같은 내적 개념이 실시간 판단 규칙으로 어떻게 쓰이는지 사례로 비교하는 방향으로 넓힐 수 있습니다.
참고 문헌
· NeRV: 조명 변화와 시점 합성을 위한 신경 반사율·가시성 필드 (Srinivasan PP et al, 2021) DOI 10.1109/cvpr46437.2021.00741
· 편집과 학습을 위한 미분 가능한 벡터 그래픽 래스터화 (Li TM et al, 2020) DOI 10.1145/3414685.3417871
· 벡터장 결합을 통한 윤곽선 보간 (Fantoni C, Gerbino W, 2003) DOI 10.1167/3.4.4