Функция D3DXIntersect
Определяет, пересекается ли луч с сеткой.
Синтаксис
HRESULT D3DXIntersect(
_In_ LPD3DXBASEMESH pMesh,
_In_ const D3DXVECTOR3 *pRayPos,
_In_ const D3DXVECTOR3 *pRayDir,
_Out_ BOOL *pHit,
_Out_ DWORD *pFaceIndex,
_Out_ FLOAT *pU,
_Out_ FLOAT *pV,
_Out_ FLOAT *pDist,
_Out_ LPD3DXBUFFER *ppAllHits,
_Out_ DWORD *pCountOfHits
);
Параметры
-
pMesh [in]
-
Тип: LPD3DXBASEMESH
Указатель на интерфейс ID3DXBaseMesh , представляющий тестируемую сетку.
-
pRayPos [in]
-
Тип: const D3DXVECTOR3*
Указатель на структуру D3DXVECTOR3 , указывающую точку начала луча.
-
pRayDir [in]
-
Тип: const D3DXVECTOR3*
Указатель на структуру D3DXVECTOR3 , указывающую направление луча.
-
pHit [out]
-
Тип: BOOL*
Указатель на логический объект. Если луч пересекается с треугольной грани сетки, это значение будет иметь значение TRUE. В противном случае это значение будет равно FALSE.
-
pFaceIndex [out]
-
Тип: DWORD*
Указатель на индексное значение лица, ближайшего к источнику луча, если pHit имеет значение TRUE.
-
pU [out]
-
Тип: FLOAT*
Указатель на барицентрическую координату попадания, U.
-
pV [out]
-
Тип: FLOAT*
Указатель на барицентрическую координату попадания, V.
-
pDist [out]
-
Тип: FLOAT*
Указатель на расстояние параметра пересечения лучей.
-
ppAllHits [out]
-
Тип: LPD3DXBUFFER*
Указатель на объект ID3DXBuffer , содержащий массив структур D3DXINTERSECTINFO .
-
pCountOfHits [out]
-
Тип: DWORD*
Указатель на DWORD, содержащий количество записей в массиве ppAllHits.
Возвращаемое значение
Тип: HRESULT
Если функция выполняется успешно, возвращаемое значение будет D3D_OK. Если функция завершается сбоем, возвращаемое значение может быть следующим: E_OUTOFMEMORY.
Комментарии
Функция D3DXIntersect позволяет понять точки в и вокруг треугольника, независимо от того, где треугольник находится. Эта функция возвращает результирующую точку, используя следующее уравнение: V1 + U(V2 – V1) + V(V3 – V1).
Любая точка плоскости V1V2V3 может быть представлена барицентрической координатой (U,V). Параметр U определяет, сколько V2 взвешивается в результатах, а параметр V определяет, сколько V3 взвешивается в результат. Наконец, значение [1 - (U + V)] определяет, сколько V1 взвешивается в результат.
Барицентрические координаты являются формой общих координат. В этом контексте использование барицентрических координат представляет собой изменение в системах координат. То, что верно для декартовых координат, имеет значение true для барицентрических координат.
Барицентрические координаты определяют точку внутри треугольника с точки зрения вершин треугольника. Более подробное описание барицентрических координат см. в описании барицентрических координат Mathworld.
Требования
Требование | Значение |
---|---|
Заголовок |
|
Библиотека |
|
См. также раздел