선형대수학 행렬 수학 핵심개념

핵심 개념

빛이나 공이 벽에 부딪혔을 때 튕겨나가는 방향을 구하는 벡터.
입사각과 반사각이 같다.


공식

  • V: 입사 벡터 (부딪히는 방향)
  • N: 법선 벡터 (벽의 수직 방향, 단위 벡터)
  • V·N: 내적 (V의 법선 방향 성분 크기)

직관적 이해

       N
       ↑
  V    |    R
   \   |   /
    \  |  /
     \ | /
──────────────── 벽
  1. (V·N)N → V에서 법선 방향 성분만 추출
  2. 이걸 두 배 빼면 → 법선 기준으로 대칭

한 번 빼면 슬라이딩, 두 번 빼면 반사


슬라이딩 벡터와 비교

공식결과
슬라이딩V - (V·N)N벽에 평행하게 미끄러짐
반사V - 2(V·N)N법선 기준으로 대칭 반사

게임/셰이더 구현

// C++
Vector3 Reflect(Vector3 V, Vector3 N) {
    return V - 2 * Dot(V, N) * N;
}
// HLSL (셰이더)
float3 r = reflect(V, N);

HLSL의 reflect() 함수가 이 계산을 자동으로 해준다.


활용 예시

  • 광선 추적(Ray Tracing)에서 빛의 반사 계산
  • 총알이나 공이 벽에 튕길 때
  • 스페큘러(Specular) 조명 계산

연관 개념