Bagikan melalui


Fungsi D3DXIntersectSubset

Bersinggungan dengan sinar yang ditentukan dengan subset jala yang diberikan. Ini menyediakan fungsionalitas serupa dengan D3DXIntersect.

Sintaks

HRESULT D3DXIntersectSubset(
  _In_        LPD3DXBASEMESH pMesh,
  _In_        DWORD          AttribId,
  _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
);

Parameter

pMesh [in]

Jenis: LPD3DXBASEMESH

Arahkan ke antarmuka ID3DXBaseMesh , yang mewakili jala yang akan diuji. Jala harus diurutkan atributnya.

AttribId [in]

Jenis: DWORD

Pengidentifikasi atribut subset untuk bersinggungan.

pRayPos [in]

Jenis: const D3DXVECTOR3*

Pointer ke struktur D3DXVECTOR3 , menentukan titik di mana sinar dimulai.

pRayDir [in]

Jenis: const D3DXVECTOR3*

Arahkan ke struktur D3DXVECTOR3 , menentukan arah sinar.

pHit [out]

Jenis: BOOL*

Arahkan ke BOOL. Jika sinar berpotongan wajah segitiga pada jala, nilai ini akan diatur ke TRUE. Jika tidak, nilai ini diatur ke FALSE.

pFaceIndex [out]

Jenis: DWORD*

Arahkan ke nilai indeks wajah yang paling dekat dengan asal sinar, jika pHit TRUE.

pU [keluar]

Jenis: FLOAT*

Pointer ke koordinat hit barycentric, U.

pV [keluar]

Jenis: FLOAT*

Pointer ke koordinat hit barycentric, V.

pDist [out]

Jenis: FLOAT*

Pointer ke jarak parameter persimpangan sinar.

ppAllHits [out]

Jenis: LPD3DXBUFFER*

Array struktur D3DXINTERSECTINFO , mewakili semua hit, bukan hanya hit terdekat.

pCountOfHits [out]

Jenis: DWORD*

Jumlah elemen dalam array yang dikembalikan dari ppAllHits.

Menampilkan nilai

Jenis: HRESULT

Jika fungsi berhasil, nilai yang dikembalikan adalah D3D_OK. Jika fungsi gagal, nilai yang dikembalikan bisa menjadi nilai berikut: E_OUTOFMEMORY.

Keterangan

Fungsi D3DXIntersectSubset menyediakan cara untuk memahami titik-titik di dalam dan di sekitar segitiga, terlepas dari di mana segitiga sebenarnya berada. Fungsi ini mengembalikan titik yang dihasilkan dengan menggunakan persamaan berikut: V1 + U(V2 - V1) + V(V3 - V1).

Setiap titik dalam bidang V1V2V3 dapat diwakili oleh koordinat barycentric (U,V). Parameter U mengontrol berapa banyak V2 yang ditimbang ke dalam hasil dan parameter V mengontrol berapa banyak V3 yang ditimbang ke dalam hasilnya. Terakhir, nilai [1 - (U + V)] mengontrol berapa banyak V1 yang ditimbang ke dalam hasil.

Koordinat barycentric adalah bentuk koordinat umum. Dalam konteks ini, menggunakan koordinat barycentric mewakili perubahan sistem koordinat. Apa yang berlaku untuk koordinat Kartesius berlaku untuk koordinat barycentric.

Koordinat barycentric menentukan titik di dalam segitiga dalam hal sudut segitiga. Untuk deskripsi yang lebih mendalam tentang koordinat barycentric, lihat Deskripsi Koordinat Barycentric Mathworld.

Persyaratan

Persyaratan Nilai
Header
D3DX9Mesh.h
Pustaka
D3dx9.lib

Lihat juga

Fungsi Jala