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

게임 수학 | 3부 3차원 콘텐츠 제작 | 11장 외적

by continue96 2023. 3. 8.

11장 외적: 3차원 공간의 분석과 응용

 

11장 외적: 3차원 공간의 분석과 응용

11.1 벡터의 외적

  • 벡터의 외적은 3차원 공간에서 두 벡터가 주어졌을 때 다른 성분을 결합하여 만드는 벡터 연산이다.
  • 외적의 결과두 벡터에 직교하는 3차원 벡터다.

수식 11-1 벡터의 외적

 

11.1.1 외적의 성질

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

 

11.1.2 외적과 삼각함수와의 관계

  • 두 벡터 u, v의 사잇각을 θ라고 할 때 외적과 sin 함수의 관계는 다음과 같다.
    • 외적의 크기는 두 벡터의 사잇각에 대한 sin 함수와 비례한다.
    • 외적의 크기는 두 벡터가 만드는 평행사변형의 넓이다.
    • 두 벡터의 외적이 영 벡터면 두 벡터는 평행하므로 평행성을 판별하는 데 활용할 수 있다.

수식 11-2 벡터 외적의 크기

 

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

 

 11.1.3 외적과 법선 벡터

  • 벡터의 외적은 두 벡터가 만드는 평면에 직교하는 법선 벡터(normal vector)다.
    • 법선 벡터의 방향은 연산 순서에 맞게 오른손(혹은 왼손)을 감아준 후 엄지 손가락이 향하는 방향이다.

그림 11-1 법선 벡터를 생성하는 외적

 

 11.1.4 벡터로 만드는 회전 행렬

  • 카메라의 시선 벡터로부터 카메라의 세 로컬 축을 구하고 회전 행렬을 구할 수 있다.
    • 카메라의 로컬 z축은 물체의 위치에서 카메라의 위치를 뺀 크기를 정규화한 시선 벡터 v이다.
    • 카메라의 로컬 x축은 월드 공간의 업 벡터 u와 로컬 z축을 외적한다.
    • 카메라의 로컬 y축은 로컬 z축과 로컬 x축을 외적한다.

수식 11-3 카메라 트랜스폼의 회전 행렬 R
그림 11-2 카메라의 로컬 축을 활용한 회전 행렬

 

11.2 외적의 시야 판별

 11.2.1 좌우 판별

  • 오른손 좌표계에서 캐릭터의 정면을 향하는 시선 벡터 f와 캐릭터에서 물체로 향하는 벡터 v가 주어진 상황에서
    • 물체가 시선 방향에서 왼쪽에 있는 경우, 두 벡터의 외적에 업 벡터를 내적한 값은 양수다.
    • 물체가 시선 방향에서 오른쪽에 있는 경우, 두 벡터의 외적에 업 벡터를 내적한 값은 음수다.
    • 물체가 시선 방향과 일치하는 경우, 두 벡터의 외적은 영 벡터다.

그림 11-3 외적을 통한 좌우 판별

 

11.3 백페이스 컬링

  • 백페이스 컬링(backface culling)은 카메라와 마주 보지 않는 물체의 뒷면을 그리지 않고 생략하는 기법을 말한다.
    • 삼각형을 구성하는 두 벡터를 외적하여 삼각형의 면이 향하는 법선 벡터를 구한다.
    • 카메라의 시선 방향과 법선 벡터를 내적한 결과가 양수인 경우, 삼각형을 그리지 않는다.
    • 카메라의 시선 방향과 법선 벡터를 내적한 결과가 음수인 경우, 삼각형을 그린다.

그림 11-4 백페이스 컬링의 원리

 

11.4 로드리게스 회전 공식

  • 로드리게스 회전 공식(rodrigues' rotation formula)
    • 축-각 회전(axis-angle rotation)은 임의의 축에 직교하는 평면의 회전을 말한다.

수식 11-4 로드리게스 회전 공식

 

그림 11-5 로드리게스 회전 공식

 

11.5 삼중곱

 11.5.1 스칼라 삼중곱

  • 스칼라 삼중곱(scalar triple product)
    • u · (v × w)
    • 스칼라 삼중곱은 세 벡터 u, v, w가 만드는 평행육면체(parallelepiped)의 부피와 같다.
    • 스칼라 삼중곱이 0이 아닌 경우, 세 벡터가 선형 독립의 관계를 갖는다.

그림 11-6 스칼라 삼중곱의 결과

 

 11.5.2 벡터 삼중곱

  • 벡터 삼중곱(vector triple product)
    • u × (v × w)
    • 삼중곱으로 만들어지는 벡터는 두 벡터 v, w가 만드는 평면에 속한다.
  • 삼중곱 전개(triple product expansion) 혹은 라그랑주 공식(largrange's formula)
    • u × (v × w) = (u · w) · v - (u · v) · w
    • 삼중곱 전개는 외적을 두 내적으로 변환한다.

그림 11-7 벡터 삼중곱의 결과

댓글