다음을 통해 공유


D3DXComputeTangentFrame 함수

메시에 대한 탄젠트, 이진 및 일반 벡터를 계산합니다.

구문

HRESULT D3DXComputeTangentFrame(
  _In_ ID3DXMesh *pMesh,
  _In_ DWORD     dwOptions
);

매개 변수

pMesh [in]

형식: ID3DXMesh*

입력 ID3DXMesh 메시 개체에 대한 포인터입니다.

dwOptions [in]

형식: DWORD

하나 이상의 D3DXTANGENT 플래그 조합입니다.

NULL을 사용하여 다음 옵션을 지정합니다.

  • 일반 벡터 길이를 라디안 단위의 각도로 가중치를 지정하고 꼭짓점을 벗어나는 두 가장자리에 의해 하위 적용됩니다.
  • UV 텍스처 좌표에서 직교 카르테시안 좌표를 계산합니다.
  • 텍스처가 U 또는 V 방향으로 래핑되지 않음
  • 텍스처 좌표와 관련된 부분 파생 항목이 정규화됩니다.
  • 꼭짓점은 각 삼각형 주위의 시계 반대 방향으로 정렬됩니다.
  • 입력 메시에 이미 있는 꼭짓점별 일반 벡터를 사용합니다.
  • 결과는 원래 입력 메시에 저장됩니다. 새 꼭짓점을 만들어야 하는 경우 함수가 실패합니다.

반환 값

형식: HRESULT

함수가 성공하면 반환 값이 S_OK. 함수가 실패하면 반환 값은 D3DERR_INVALIDCALL, D3DXERR_INVALIDDATA, E_OUTOFMEMORY 중 하나일 수 있습니다.

설명

이 함수는 다음 입력 매개 변수를 사용하여 D3DXComputeTangentFrameEx 를 호출하기만 하면 됩니다.

D3DXComputeTangentFrameEx(pMesh, D3DDECLUSAGE_TEXCOORD, 0,   
      D3DDECLUSAGE_BINORMAL, 0, D3DDECLUSAGE_TANGENT, 0, 
      D3DDECLUSAGE_NORMAL, 0, 
      dwOptions | D3DXTANGENT_GENERATE_IN_PLACE,
      NULL, 0.01f, 0.25f, 0.01f, NULL, NULL);

단수는 가장자리를 그룹화하고 꼭짓점을 분할하여 필요에 따라 처리됩니다. 꼭짓점을 분할해야 하는 경우 함수가 실패합니다. 각 꼭짓점에서 계산된 일반 벡터는 항상 단위 길이로 정규화됩니다.

직교 좌표를 계산하기 위한 가장 강력한 솔루션은 두 UV 텍스처 좌표에서 직교 좌표를 계산하도록 플래그를 D3DXTANGENT_ORTHOGONALIZE_FROM_U 및 D3DXTANGENT_ORTHOGONALIZE_FROM_V 설정하지 않는 것입니다. 그러나 이 경우 U 또는 V가 0이면 함수는 각각 D3DXTANGENT_ORTHOGONALIZE_FROM_V 또는 D3DXTANGENT_ORTHOGONALIZE_FROM_U 사용하여 직교 좌표를 계산합니다.

요구 사항

요구 사항
헤더
D3DX9Mesh.h
라이브러리
D3dx9.lib

추가 정보

메시 함수

D3DXComputeTangentFrameEx

D3DXTANGENT