본문 바로가기
서적 정리/DirectX11을 이용한 3D 게임 프로그래밍 입문

7.벡터 대수 요약

by 민돌이2 2022. 1. 20.
  1. 벡터는 크기와 방향을 모두 가진 물리적 수량을 나타내는데 쓰인다. 기하학적으로 벡터를 지향 선분(directed line segment)으로 표현한다. 지향 선분이랑 방향이 있는 선분을 말한다. 꼬리가 좌표계 원점에 있는 벡턴느 그 머리의 좌표계에 상대적인 좌표성분들을 통해서 수치적으로 서술할 수 있다.
  2. 벡터 u = (ux, uy, uz)와 v = (ux, uy, uz)에 대해 다음과 같은 벡터 연산들이 정의된다.
  3. 코드에서 SIMD 연산들을 이용해서 벡터를 효율적으로 조작하기 위해서 XNA Math 라이브러리의 XMVECTOR 클래스를 사용한다. 클래스 자료 멤버에 대해서는 XMFLOAT3를 사용하되, 계산 시에는 여러 적재 함수들과 저장 함수들을 이용해서 XMVECTOR와 XMFLOAT3을 적절히 변환한다. 초기화 구문이 요구하는 상수 벡터에 대해서는 XMVECTORF32 형식을 사용해야 한다.
  4. SIMD의 장점을 취하기 위해서는 XMVECTOR 형식의 매개변수를 함수에 넘겨줄 때 적절한 규칙을 따라야 한다. 플랫폼 독립성을 위해 XMVECTOR 매개변수를 전달할 때 CXMVECTOR 형식과 FXMVECTOR 형식을 사용한다. XMVECTOR 매개변수 전달 시, 함수의 처음 세 XMVECTOR 매개변수는 반드시 FXMVECTOR 형식으로 하고 나머지 XMVECTOR 매개변수들은 CXMVECTOR 형식으로 해야 한다.
  5. XNA Math 라이브러리는 XMVECTOR를 이용한 벡터 덧셈, 뺄셈, 스칼라 곲셈을 위해 중복적재된 연산자들을 제공한다. XNA Math 라이브러리는 벡터의 길이, 벡터 길이의 제곱, 두 벡터의 내적, 두 벡터의 외적, 벡터 정규화를 위한 현의용 함수들도 제공한다.
XMVECTOR XMVector3Length(FXMVECTOR V);
XMVECTOR XMVector3LengthSq(FXMVECTOR V):
XMVECTOR XMVector3Dot(FXMVECTOR V1, FXMVECTOR V2);
XMVECTOR XMVector3Cross(FXMVECTOR V1, FXMVECTOR V2);
XMVECTOR XMVector3Normalize(FXMVECTOR V);

 

728x90

'서적 정리 > DirectX11을 이용한 3D 게임 프로그래밍 입문' 카테고리의 다른 글

11.단위행렬(Identity Matrix)  (0) 2022.01.20
10.행렬의 전치  (0) 2022.01.20
9.행렬 곱셈  (0) 2022.01.20
8.행렬 정의  (0) 2022.01.20
6.XNA Math 라이브러리의 벡터 관련 기능  (0) 2022.01.05
5.점  (0) 2022.01.04
4.외적  (0) 2022.01.04
3.내적  (0) 2022.01.04

댓글