본문 바로가기

DirectX/3D

DX 수학관련 함수

벡터의 정의 : 방향과 크기를 가지는 것

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축

 

--------
http://zlukz.tistory.com/13

'DirectX > 3D' 카테고리의 다른 글

쿼드트리(Quad Tree)  (0) 2010.07.06
DX 3D z버퍼  (0) 2010.06.29
Z버퍼의 개념( 알파블랜딩)  (0) 2010.06.29
DirectX 한글 도움말  (0) 2010.06.15
랜더링 파이프라인  (0) 2010.06.10