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 |
|
Pustaka |
|
Lihat juga