ID3DX10Mesh::Intersect 메서드

광선이 이 메시와 교차하는지 여부를 확인합니다.

구문

HRESULT Intersect(
  [in]  D3DXVECTOR3 *pRayPos,
  [in]  D3DXVECTOR3 *pRayDir,
  [in]  UINT        *pHitCount,
  [in]  UINT        *pFaceIndex,
  [in]  float       *pU,
  [in]  float       *pV,
  [in]  float       *pDist,
  [out] ID3D10Blob  **ppAllHits
);

매개 변수

pRayPos [in]

형식: D3DXVECTOR3*

광선이 시작되는 지점을 지정하는 D3DXVECTOR3 구조체에 대한 포인터입니다.

pRayDir [in]

형식: D3DXVECTOR3*

광선의 방향을 지정하는 D3DXVECTOR3 구조체에 대한 포인터입니다.

pHitCount [in]

형식: UINT*

광선이 메시와 교차된 횟수입니다.

pFaceIndex [in]

형식: UINT*

pHit이 TRUE인 경우 광선 원점과 가장 가까운 얼굴의 인덱스 값에 대한 포인터입니다.

pU [in]

형식: float*

막대 중심 적중 좌표 U에 대한 포인터입니다.

pV [in]

형식: float*

막대 중심 적중 좌표인 V에 대한 포인터입니다.

pDist [in]

형식: float*

광선 교차 매개 변수 거리에 대한 포인터입니다.

ppAllHits [out]

형식: ID3D10Blob**

D3DX10_INTERSECT_INFO 구조체 배열을 포함하는 ID3D10Blob 인터페이스에 대한 포인터입니다. 교차 테스트에서 발생한 모든 적중 항목의 목록입니다.

반환 값

형식: HRESULT

반환 값은 Direct3D 10 반환 코드에 나열된 값 중 하나입니다.

설명

이 API는 삼각형이 실제로 있는 위치와 관계없이 삼각형 안팎의 점을 이해하는 방법을 제공합니다. 이 함수는 V1 + U(V2 - V1) + V(V3 - V1) 수식을 사용하여 결과 지점을 반환합니다.

평면 V1V2V3의 모든 지점은 막대 중심 좌표(U,V)로 나타낼 수 있습니다. 매개 변수 U는 결과에 가중치를 두는 V2의 양을 제어하고, 매개 변수 V는 결과에 가중치를 두는 V3의 양을 제어합니다. 마지막으로 [1 - (U + V)] 값은 V1이 결과에 가중치를 가져오는 양을 제어합니다.

바리센트릭 좌표는 일반 좌표의 한 형태입니다. 이 컨텍스트에서 바리센트릭 좌표를 사용하는 것은 좌표계의 변화를 나타냅니다. 카티전 좌표에 대해 true인 것은 바리센트릭 좌표에 대해 true입니다.

바리센트릭 좌표는 삼각형의 꼭짓점 측면에서 삼각형 내의 점을 정의합니다. 바리센트릭 좌표에 대한 자세한 설명은 Mathworld의 Barycentric 좌표 설명을 참조하세요.

요구 사항

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

추가 정보

ID3DX10Mesh

D3DX 인터페이스