그래픽스를 위한 수학 개요

그래픽스

2020. 4. 20. 01:57

1. Matrix

  • 행렬은 행(m) x 열(n)과 같은 사이즈로 표현

  • m = n이면 정사각 행렬(square)이라고 함
  • l x m 행렬과 m x n 행렬을 곱하면 l x n 행렬이 되며 이 때 m은 동일해야함
  • 열과 행을 뒤집은 행렬 : Transpose (전치 행렬)
  • $(AB)^T = B^TA^T$ 처럼 계산할 수 있음

 

2. Vector

  • 세로로 쓴 벡터 표기 = 열벡터 (OpenGL)
  • 가로로 쓴 벡터 표기 = 행벡터 (DirectX) 
  • 벡터의 길이(Norm) ||V|| = $\sqrt{x^2 + y^2 + z^2 + ...}$
  • Unit Vector $U_v = V / ||V||$ , 방향은 동일, 길이는 1인 벡터
  • 유닛벡터를 만드는 과정(자신의 길이로 나누는 과정)을 normalization이라고 함

 

3. Identical Matrix

  • Diagonal Element는 전부 1 나머지는 전부 0인 행렬로 I라고 표시함
  • Arbitrary Matrix M이 있을 때, MI = IM = M임
  • 만약 두 행렬을 곱해서 I가 된다면, 그 행렬은 다른 행렬의 역행렬 (Inverse Matrix)임
  • AB = I라면, $A = B^{-1}, B = A^{-1}$이라고 할 수 있음.
  • $(AB)^{-1} = B^{-1}A^{-1}$처럼 계산할 수 있음

 

4. Coordinate System

  • Basis(기저) : 독립이면서, 선형조합으로 해당 공간을 생성할 수 있는 벡터의 집합
  • Standard Basis (표준 기저) : 두 벡터의 길이가 1이고 직각의 형태를 유지하는 경우 (0,1) , (1,0)
  • 이러한 벡터(표준 기저)를 Othonormal한 벡터라고 함 (Othogonal + Nomalized) 
  • 2차원의 개념이 그대로 3차원에서도 동일하게 적용됨.

 

5. Inner Product (내적)

  1. 대수적 정의 : (a, b) * (c, d) = ac + bd (스칼라)
  2. 기하학적 정의 : |a||b|cosθ (단, θ는 두 벡터 사이의 각도)
  • 물론 이 두 가지 내적에 대한 정의는 동일하며, 연산 결과 역시 동일함.
  • 이러한 정의에 의해, 두 벡터의 사이각이 90도라면 내적의 값은 0이 됨.
  • 두 벡터의 사이각이 90도보다 작다면 양수가 되고, 90도보다 크면 음수가 됨. 
  • 이러한 특징에서 Othonormal Basis의 중요한 특징이 나오는데, 두 기저 (1,0), (0,1)이 있을 때, 자기자신 끼리 내적하면 그 결과는 1이 되고, 서로 내적하면 그 결과는 0이 됨 (1,0)(1,0) = 1, / (1,0)(0,1) = 0

 

6. Cross Product (외적)

 

  • 외적은 3차원 공간이상에서만 정의 됨.
  • 두 벡터가 이루는 각도가 θ일때, 길이는 |a||b|sinθ이며, 방향은 플레밍의 오른손법칙의 방향을 따름. 
  • |a||b|sinθ는 두 벡터 a와 b가 이루는 평행사변형의 면적과 같음
  • 외적의 대수적인 계산은 아래와 같이 하면 굉장히 편리하게 할 수 있음
  • (x좌표 = x빼고 yz의 ad-bc, y좌표= y빼고 xz의 ad-bc, z좌표 = z빼고 xy의 ad-bc) 

[그림] 외적

 

7. Reference