11장 외적: 3차원 공간의 분석과 응용
11.1 벡터의 외적
- 벡터의 외적은 3차원 공간에서 두 벡터가 주어졌을 때 다른 성분을 결합하여 만드는 벡터 연산이다.
- 외적의 결과는 두 벡터에 직교하는 3차원 벡터다.
■ 11.1.1 외적의 성질
- 외적은 분배 법칙이 성립하지만, 교환 법칙과 결합 법칙은 성립하지 않는다.
- 같은 벡터를 외적하면 영 벡터가 나온다.
내적 | 외적 | |
결과 | 스칼라 | 벡터 |
교환 법칙 | O | X |
결합 법칙 | X | X |
분배 법칙 | O | O |
연산 | 같은 위치의 요소만 사용 | 다른 위치의 요소만 사용 |
■ 11.1.2 외적과 삼각함수와의 관계
- 두 벡터 u, v의 사잇각을 θ라고 할 때 외적과 sin 함수의 관계는 다음과 같다.
- 외적의 크기는 두 벡터의 사잇각에 대한 sin 함수와 비례한다.
- 외적의 크기는 두 벡터가 만드는 평행사변형의 넓이다.
- 두 벡터의 외적이 영 벡터면 두 벡터는 평행하므로 평행성을 판별하는 데 활용할 수 있다.
내적 | 외적 | |
판별성 | 직교성 | 평행성 |
삼각함수 | cosθ | sinθ |
■ 11.1.3 외적과 법선 벡터
- 벡터의 외적은 두 벡터가 만드는 평면에 직교하는 법선 벡터(normal vector)다.
- 법선 벡터의 방향은 연산 순서에 맞게 오른손(혹은 왼손)을 감아준 후 엄지 손가락이 향하는 방향이다.
■ 11.1.4 벡터로 만드는 회전 행렬
- 카메라의 시선 벡터로부터 카메라의 세 로컬 축을 구하고 회전 행렬을 구할 수 있다.
- 카메라의 로컬 z축은 물체의 위치에서 카메라의 위치를 뺀 크기를 정규화한 시선 벡터 v이다.
- 카메라의 로컬 x축은 월드 공간의 업 벡터 u와 로컬 z축을 외적한다.
- 카메라의 로컬 y축은 로컬 z축과 로컬 x축을 외적한다.
11.2 외적의 시야 판별
■ 11.2.1 좌우 판별
- 오른손 좌표계에서 캐릭터의 정면을 향하는 시선 벡터 f와 캐릭터에서 물체로 향하는 벡터 v가 주어진 상황에서
- 물체가 시선 방향에서 왼쪽에 있는 경우, 두 벡터의 외적에 업 벡터를 내적한 값은 양수다.
- 물체가 시선 방향에서 오른쪽에 있는 경우, 두 벡터의 외적에 업 벡터를 내적한 값은 음수다.
- 물체가 시선 방향과 일치하는 경우, 두 벡터의 외적은 영 벡터다.
11.3 백페이스 컬링
- 백페이스 컬링(backface culling)은 카메라와 마주 보지 않는 물체의 뒷면을 그리지 않고 생략하는 기법을 말한다.
- 삼각형을 구성하는 두 벡터를 외적하여 삼각형의 면이 향하는 법선 벡터를 구한다.
- 카메라의 시선 방향과 법선 벡터를 내적한 결과가 양수인 경우, 삼각형을 그리지 않는다.
- 카메라의 시선 방향과 법선 벡터를 내적한 결과가 음수인 경우, 삼각형을 그린다.
11.4 로드리게스 회전 공식
- 로드리게스 회전 공식(rodrigues' rotation formula)
- 축-각 회전(axis-angle rotation)은 임의의 축에 직교하는 평면의 회전을 말한다.
11.5 삼중곱
■ 11.5.1 스칼라 삼중곱
- 스칼라 삼중곱(scalar triple product)
- u · (v × w)
- 스칼라 삼중곱은 세 벡터 u, v, w가 만드는 평행육면체(parallelepiped)의 부피와 같다.
- 스칼라 삼중곱이 0이 아닌 경우, 세 벡터가 선형 독립의 관계를 갖는다.
■ 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
- 삼중곱 전개는 외적을 두 내적으로 변환한다.
'Computer Science > 게임 수학' 카테고리의 다른 글
게임 수학 | 4부 4차원 수학과 캐릭터 | 14장 복소수 (0) | 2023.03.23 |
---|---|
게임 수학 | 3부 3차원 콘텐츠 제작 | 12장 원근 투영 (0) | 2023.03.14 |
게임 수학 | 3부 3차원 콘텐츠 제작 | 10장 3차원 공간 (0) | 2023.02.27 |
게임 수학 | 2부 콘텐츠 제작 기초 | 09장 게임 엔진 (0) | 2023.02.20 |
게임 수학 | 2부 콘텐츠 제작 기초 | 08장 삼각형 (0) | 2023.02.18 |
댓글