안녕하세요?
한마음영수학원입니다!
아이들이 즐겁게 하는 3D 게임 속 캐릭터들, 점프하고 회전하며 화려하게 움직이는 모습을 보며 이런 생각 해보신 적 있으신가요?
그 비밀은 바로 고등학교 [기하] 단원의 핵심 개념인 '벡터(Vector)'에 있습니다. 교과서 속 공식으로만 느껴지던 수학이 게임 속에서 어떻게 살아 움직이는지 함께 알아볼까요?
━━━━━━━━━━━━━━━
3D 게임 공간은 가로(X), 세로(Y), 높이(Z) 3개의 축으로 이루어진 3차원 공간좌표입니다.
캐릭터가 서 있는 자리는 이 좌표계 위의 한 점, 즉 위치벡터로 표현됩니다. 캐릭터가 움직이는 것은 이 위치벡터에 '이동할 방향과 거리'를 뜻하는 변위벡터를 더하는 과정입니다.
새 위치벡터 = 기존 위치벡터 + 이동벡터
우리가 키보드 W, A, S, D 키나 조이스틱을 누를 때마다, 컴퓨터 내부에서는 실시간으로 수천 번의 벡터 덧셈·뺄셈 연산이 일어나고 있는 거예요.
캐릭터가 제자리에서 회전하거나 카메라 시점이 바뀌는 동작은 어떻게 구현될까요?
3차원 공간에서 벡터를 특정 각도만큼 회전시킬 때는 회전행렬(Rotation Matrix)이나 쿼터니언(Quaternion, 우리말로는 사원수)이라는 도구를 활용합니다.
캐릭터를 이루는 각 정점(Vertex)의 좌표벡터에 회전행렬을 곱하면, 캐릭터가 고개나 몸을 자연스럽게 돌리는 연산이 완료됩니다.
회전 후 정점 좌표 = 회전행렬 × 원래 정점 좌표
교과서에서 배우는 '행렬과 벡터의 곱'이 게임 속 캐릭터의 시선 처리와 역동적인 카메라 워크를 완성하는 핵심 원리인 셈이죠.
게임 캐릭터가 입체감 있게 보이려면 빛과 그림자 처리가 필수적입니다.
▸ 벡터의 내적(a·b): 캐릭터 표면이 향하는 방향(법선벡터)과 빛이 들어오는 방향벡터 사이의 내적을 계산합니다. 두 벡터가 이루는 각도가 작을수록(빛을 정면으로 받을수록) 내적값이 커지고, 화면은 그만큼 밝게 표현됩니다.
밝기 ∝ 법선벡터 · 광원벡터
▸ 벡터의 외적(a×b): 두 벡터에 동시에 수직인 새로운 벡터를 만들어, 캐릭터 표면이 정면으로 바라보는 방향(법선벡터) 자체를 구할 때 사용됩니다.
━━━━━━━━━━━━━━━
한눈에 정리하는 표
게임 속 동작 | 사용하는 벡터 개념 | 교과 단원 |
캐릭터 이동 | 벡터의 덧셈·뺄셈 | 기하(공간벡터) |
캐릭터 회전, 시점 변환 | 행렬과 벡터의 곱, 쿼터니언 | 기하, 행렬 |
명암·음영 표현 | 벡터의 내적 | 기하(내적) |
표면 방향(법선) 계산 | 벡터의 외적 | 기하(외적) |
시험에서 자주 틀리는 포인트
내적과 외적을 헷갈려하는 학생이 정말 많아요. 딱 하나만 기억하세요.
▸ 내적의 결과값은 스칼라(숫자 하나) → "밝기는 얼마인가" 같은 크기를 구할 때 사용
▸ 외적의 결과값은 벡터(방향을 가짐) → "어느 쪽을 향하는가" 같은 방향을 구할 때 사용
이 둘의 결과값 형태(숫자 vs 벡터)만 명확히 구분해도 관련 문제의 절반은 풀립니다.
━━━━━━━━━━━━━━━
수학은 추상적인 공식이 아닌 '현실을 구현하는 도구'입니다
많은 학생들이 "이런 어려운 수학을 배워서 어디에 쓰나요?"라고 묻곤 합니다. 하지만 우리가 매일 접하는 3D 애니메이션, VR/AR, 자율주행, 로봇공학, AI 그래픽스의 기반에는 항상 [기하와 벡터]가 존재합니다.
원리를 이해하고 원인이 눈에 보일 때, 수학은 단순한 암기과목이 아니라 세상을 설계하는 흥미로운 언어가 됩니다.
━━━━━━━━━━━━━━━
탄탄한 개념 이해부터 원리 중심의 문제 해결력까지, 한마음영수학원이 차근차근 함께합니다!





