벡터의 정의 : 방향과 크기를 가지는 것
D3DXVECTOR3
백터의 길이 : FLOAT D3DXVec3Length(CONST D3DXVECTOR3* v)
벡터의 정규화 : 크기가 1인 단위벡터만들기
D3DXVECTOR3 * D3DXVec3Normalize(
D3DXVECTOR3* pOut,
CONST D3DXVECTOR3* v
)
벡터의 내적 : 조명의 계산, 은닉면 처리에 활용
FLOAT D3DXVec3Dot(
CONST D3DXVECTOR3* v1,
CONST D3DXVECTOR3* v2
)
벡터의 외적 : 면의 법선 벡터 계산, 평면의 식 계산에 활용
D3DXVECTOR3* D3DXVec3Cross(
D3DXVECTOR3* pOut,
CONST D3DXVECTOR3* v1,
CONST D3DXVECTOR3* v2
)
행렬
D3DXMATRIX *D3DXMatrixIdentity
전치행렬
D3DXMATRIX *D3DXMatrixTranspose(
D3DXMATRIX *pOut,
CONST D3DXMATRIX *pM
)
역행렬
D3DXMATRIX *D3DXMatrixInverse(
D3DXMATRIX *pOut,
FLOAT *pDeterminant,
CONST D3DXMATRIX *pm
)
회전행렬
D3DXMATRIX *D3DXMatrixRotationX(
D3DXMATRIX *pOut,
FLOAT angle
)
확대 축소행렬
D3DXMATRIX *D3DXMatrixScaling(
D3DXMATRIX *pOut,
FLOAT sx,
FLOAT sy,
FLOAT sz
)
평행 이동행렬
D3DXMATRIX *D3DXMatrixTranslation(
D3DXMATRIX *pOut,
FLOAT x,
FLOAT y,
FLOAT z
)
포인트변환 : 지정됭 행렬에 의해 3D 벡터를 변환해, 그 결과를 w = 1 에 투영
D3DXVECTOR3 *D3DXVec3TranformCoord(
D3DXVECTOR3 *pOut,// 결과
CONST D3DXVECTOR3* pV,// 변환할 포인트
CONST D3DXMATRIX* pM// 변환행렬
)
벡터변환 : 지정된 행렬에 의해 3D 벡터 법선을 변환
D3DXVECTOR3* WINAPI D3DXVec3TranformNormal(
D3DXVECTOR3 *pOut,// 결과
CONST D3DXVECTOR3* pV,// 변환할 벡터
CONST D3DXMATRIX* pM// 변환행렬
)
평면 : 점과 법선 벡터를 이용한 평면 구하기?
D3DXPLANE* D3DXPlaneFromPointNormal(
D3DXPLANE* pOut,// 평면
CONST D3DXVECTOR3* pPoint,// 평면상의 포인트
OCNST D3DXVECTOR3* pNormal,// 평면의 법선
)
D3DXPLANE* D3DXPlaneFromPoint(
D3DXPLANE* pOut,// 평면
CONST D3DXVECTOR3* pV1,// 평면상의 포인트1
CONST D3DXVECTOR3* pV2,// 평면상의 포인트2
CONST D3DXVECTOR3* pV3,// 평면상의 포인트3
)
평면 법선 벡터의 정규화
D3DXPLANE* D3DXPlaneTransform(
D3DXPLANE* pOut,// 평면
CONST D3DXPLANE *pP,// 입력 평면
CONST D3DXMATRIX* pM// 변환행렬
)
포인트와 평면 공간관계
FLOAT D3DXPlaneDotCoord(
CONST D3DXPLANE* pP, // 평면
CONST D3DXVECTOR3* pV// 포인트
)
평면변환
D3DXPLANE* D3DXPlaneTransform(
D3DXPLANE* pOut,// 평면
CONST D3DXPLANE* pP,// 입력평면
CONST D3DXMATRIX* pM// 변환행렬
)
DirectX는 왼손 좌표계
중지 X축 엄지 Y축 검지 Z축
--------
다 외워주마...
(퍼온거 아네요 ㅡ.ㅜ;)