ID3DXPRTEngine::ClosestRayIntersects 메서드
PRT(사전 계산된 방사 전송) 시뮬레이션에서 효율적인 광선 추적을 사용하여 광선이 메시와 교차하는지 여부를 확인합니다. 교집합이 발견되면 메서드는 광선에 의해 적중된 가장 가까운 메시 얼굴의 인덱스와 교차점의 바리센트릭 좌표를 반환합니다.
구문
BOOL ClosestRayIntersects(
[in] const D3DXVECTOR3 *pRayPos,
[in] const D3DXVECTOR3 *pRayDir,
[in] DWORD *pFaceIndex,
[out] FLOAT *pU,
[out] FLOAT *pV,
[out] FLOAT *pDist
);
매개 변수
-
pRayPos [in]
-
형식: const D3DXVECTOR3*
광선이 시작되는 지점을 지정하는 D3DXVECTOR3 구조체에 대한 포인터입니다.
-
pRayDir [in]
-
형식: const D3DXVECTOR3*
광선의 정규화된 방향을 지정하는 D3DXVECTOR3 구조체에 대한 포인터입니다.
-
pFaceIndex [in]
-
형식: DWORD*
현재 메시 앞에 모든 블로커 메시 얼굴을 쌓아 놓은 다음 지정된 광선에 의해 처음 적중되는 현재 메시 얼굴의 인덱스 포인터입니다.
-
pU [out]
-
형식: FLOAT*
삼각형의 꼭짓점 0에 대한 막대 중심 적중 좌표 U에 대한 포인터입니다.
-
pV [out]
-
형식: FLOAT*
삼각형의 꼭짓점 1에 대한 막대 중심 적중 좌표 V에 대한 포인터입니다.
-
pDist [out]
-
형식: FLOAT*
광선을 따라 교차점의 거리에 대한 포인터입니다.
반환 값
형식: BOOL
광선이 현재 메시와 교차하면 TRUE 를 반환합니다. 그렇지 않으면 FALSE를 반환 합니다.
설명
ID3DXPRTEngine::SetMinMaxIntersection을 사용하여 광선과의 교집합의 최소 및 최대 거리를 설정합니다.
삼각형의 세 번째 꼭짓점(꼭짓점 2)의 바리센트릭 좌표는 1 - ( U + V )입니다.
이 메서드는 ID3DXPRTEngine::ShadowRayIntersects보다 느리게 실행됩니다. 교집합 지점의 위치가 필요하지 않은 경우 ID3DXPRTEngine::ShadowRayIntersects 를 사용합니다.
바리센트릭 좌표는 삼각형의 꼭짓점 측면에서 삼각형 내의 점을 정의합니다. 바리센트릭 좌표에 대한 자세한 설명은 Mathworld의 Barycentric 좌표 설명을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
헤더 |
|
라이브러리 |
|
추가 정보