Поделиться через


Метод 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*

Указатель на барицентрическую координату попадания U для вершины 0 треугольника.

pV [out]

Тип: FLOAT*

Указатель на барицентрическую координату попадания V для вершины 1 треугольника.

pDist [out]

Тип: FLOAT*

Указатель на расстояние от точки пересечения вдоль луча.

Возвращаемое значение

Тип: BOOL

Возвращает значение TRUE , если луч пересекает текущую сетку; В противном случае возвращает значение FALSE.

Комментарии

Используйте ID3DXPRTEngine::SetMinMaxIntersection , чтобы задать минимальное и максимальное расстояние пересечения с лучом.

Барицентрическая координата третьей вершины (вершины 2) треугольника составляет 1 - ( U +V ).

Этот метод выполняется медленнее , чем ID3DXPRTEngine::ShadowRayIntersects. Используйте ID3DXPRTEngine::ShadowRayIntersects , если расположение точки пересечения не требуется.

Барицентрические координаты определяют точку внутри треугольника с точки зрения вершин треугольника. Более подробное описание барицентрических координат см. в разделе Описание барицентрических координат Mathworld.

Требования

Требование Значение
Заголовок
D3DX9Mesh.h
Библиотека
D3dx9.lib

См. также раздел

ID3DXPRTEngine

ID3DXPRTEngine::ShadowRayIntersects

ID3DXPRTEngine::SetMinMaxIntersection