본문 바로가기
Computer Science/게임 수학

게임 수학 | 2부 콘텐츠 제작 기초 | 07장 내적

by continue96 2023. 2. 17.

07장 내적: 벡터 공간의 분석과 응용

 

07장 내적: 벡터 공간의 분석과 응용

7.1 벡터의 내적

  • 벡터의 내적은 같은 차원의 두 벡터가 주어졌을 때 벡터를 구성하는 각 성분을 곱한 후 이들을 더해 스칼라를 만드는 연산이다.
  • 내적의 결과스칼라다.

수식 7-1 벡터의 내적

 

7.1.1 내적의 성질

  • 내적은 교환 법칙과 분배 법칙이 성립하지만, 결합 법칙은 성립하지 않는다.
  • 같은 벡터를 내적하면 그 벡터의 크기를 제곱한 스칼라가 나온다.
  내적 외적
결과 스칼라 벡터
교환 법칙 O X
결합 법칙 X X
분배 법칙 O O
연산 같은 위치의 요소만 사용 다른 위치의 요소만 사용

 

 7.1.2 내적과 삼각함수와의 관계

  • 두 벡터 u, v의 사잇각을 θ라고 할 때 내적과 cos 함수의 관계는 다음과 같다.
    • 내적은 두 백터의 사잇각에 대한 cos 함수와 비례한다.
    • 두 벡터의 내적이 0이면 두 벡터는 직교하므로 직교성을 판별하는 데 활용할 수 있다.

수식 7-2 내적의 성질

 

  내적 외적
판별성 직교성 평행성
삼각함수 cosθ sinθ

 

 7.1.3 내적과 행렬의 곱셈

  • 행렬과 벡터의 곱셈, 행렬과 행렬의 곱셈은 벡터의 내적으로 표현할 수 있다.

수식 7-3 내적으로 표현한 행렬과 벡터의 곱셈

 

  • 직교 행렬(orthogonal matrix)은 정방 행렬을 구성하는 모든 행벡터와 열벡터의 크기가 1이고 벡터들이 서로 직교하는 행렬이다.
    • 직교 행렬의 역행렬은 직교 행렬의 전치 행렬이다.
    • 회전 변환 행렬(R)은 각 행벡터와 열벡터의 크기가 1이고 서로 직교하므로 직교 행렬이다.

 

  • 강체 변환(rigid transformation)은 물체의 형태가 그대로 유지되는 선형 변환을 말한다.
    • 변화된 기저벡터의 크기가 모두 1이어야 한다.
    • 모든 기저벡터는 서로 직교해야 한다.
    • 행렬식(det) 값이 1이어야 한다.

 

7.2 내적의 시야 판별

 7.2.1 앞뒤 판별

  • 캐릭터의 정면을 향하는 시선 벡터 f와 캐릭터에서 물체로 향하는 벡터 v가 주어진 상황에서
    • 물체가 시선 방향에서 앞에 있는 경우, 두 벡터를 내적한 값은 양수이다.
    • 물체가 시선 방향에서 뒤에 있는 경우, 두 벡터를 내적한 값은 음수이다.
    • 물체가 시선 방향에서 나란히 옆에 있는 경우, 두 벡터를 내적한 값은 0이다.

그림 7-1 내적을 통한 앞뒤 판별

 

 7.2.2 시야각 판별

  • 캐릭터에게 부여한 시야각이 β, 캐릭터의 정면을 향하는 시선 벡터 f, 캐릭터에서 물체로 향하는 벡터 v가 주어진 상황에서
    • 단위 벡터 f와 v를 내적한 값이 cos(β/2)보다 크거나 같은 경우, 물체가 시야 범위 안에 있다.
    • 단위 벡터 f와 v를 내적한 값이 cos(β/2)보다 작은 경우, 물체가 시야 범위 밖에 있다.

그림 7-2 내적을 통한 시야각 판별

 

7.3 조명 효과의 구현

  • 램버트 반사(lambertian reflection) 모델
    • 빛을 받아 표면에서 반사되는 빛의 세기는 두 벡터가 만드는 사잇각의 cos 함수에 비례한다.
    • 두 단위 벡터 N과 L을 내적하여 이 모델에 필요한 cosθ를 얻을 수 있다.

그림 7-3 램버트 반사 모델

 

7.4 투영 벡터

  • 벡터의 내적을 활용해 투영 벡터를 구할 수 있다.
  • 임의의 두 벡터 u, v가 주어졌을 때, 벡터 u를 벡터 v에 투영하는 수식은 다음과 같다.
수식 7-4 투영 벡터를 구하는 공식

 

 

그림 7-4 벡터 투영의 시각화

댓글