Bagikan melalui


Fungsi D3DXIntersect

Menentukan apakah sinar bersinggungan dengan jala.

Sintaks

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
);

Parameter

pMesh [in]

Jenis: LPD3DXBASEMESH

Penunjuk ke antarmuka ID3DXBaseMesh , mewakili jala yang akan diuji.

pRayPos [in]

Jenis: const D3DXVECTOR3*

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

pRayDir [in]

Jenis: const D3DXVECTOR3*

Penunjuk ke struktur D3DXVECTOR3 , menentukan arah sinar.

pHit [out]

Jenis: BOOL*

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

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

pU [out]

Jenis: FLOAT*

Penunjuk ke koordinat hit barycentric, U.

pV [keluar]

Jenis: FLOAT*

Penunjuk ke koordinat hit barycentric, V.

pDist [out]

Jenis: FLOAT*

Penunjuk ke jarak parameter persimpangan sinar.

ppAllHits [out]

Jenis: LPD3DXBUFFER*

Penunjuk ke objek ID3DXBuffer , yang berisi array struktur D3DXINTERSECTINFO .

pCountOfHits [out]

Jenis: DWORD*

Penunjuk ke DWORD yang berisi jumlah entri dalam array ppAllHits.

Menampilkan nilai

Jenis: HRESULT

Jika fungsi berhasil, nilai yang dikembalikan adalah D3D_OK. Jika fungsi gagal, nilai yang dikembalikan dapat berupa: E_OUTOFMEMORY.

Keterangan

Fungsi D3DXIntersect menyediakan cara untuk memahami titik dalam dan 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 dalam sistem koordinat. Apa yang berlaku untuk koordinat Kartesius berlaku untuk koordinat barycentric.

Koordinat barycentric mendefinisikan 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