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 (내적)
- 대수적 정의 : (a, b) * (c, d) = ac + bd (스칼라)
- 기하학적 정의 : |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
'그래픽스' 카테고리의 다른 글
그래픽스 모델링 (2) - 법선 벡터 (Surface Normal) (2) | 2020.05.09 |
---|---|
그래픽스 모델링 (1) - 폴리곤 메쉬 (Polygon Mesh) (1) | 2020.05.09 |
컴퓨터 그래픽스 개요 (0) | 2020.04.20 |