Метод 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.
Требования
Требование | Значение |
---|---|
Заголовок |
|
Библиотека |
|
См. также раздел