Метод ID3DX10Mesh::IntersectSubset

Определяет, пересекается ли луч с подмножеством этой сетки.

Синтаксис

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

Параметры

AttribId [in]

Тип: UINT

Идентификатор атрибута, определяющий подмножество сетки.

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**

Указатель на интерфейс ID3D10Blob, содержащий массив D3DX10_INTERSECT_INFO структур. Это список всех попаданий, которые произошли в тесте пересечения.

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

Тип: HRESULT

Возвращаемое значение является одним из значений, перечисленных в коде возврата Direct3D 10.

Комментарии

Этот API предоставляет способ понять точки в треугольнике и вокруг нее, независимо от того, где на самом деле находится треугольник. Эта функция возвращает результирующая точка с помощью следующего уравнения: V1 + U(V2 – V1) + V(V3 – V1).

Любая точка плоскости V1V2V3 может быть представлена барицентрической координатой (U,V). Параметр U определяет, сколько V2 взвешивается в результатах, а параметр V определяет, сколько V3 взвешивается в результат. Наконец, значение [1 – (U + V)] определяет, сколько V1 взвешивается в результате.

Барицентрические координаты являются формой общих координат. В этом контексте использование барицентрических координат представляет собой изменение систем координат. То, что верно для декартовых координат, верно для барицентрических координат.

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

Требования

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

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

ID3DX10Mesh

Интерфейсы D3DX