Fungsi D3DXComputeTangentFrame
Tangen komputasi, binormal, dan vektor normal untuk jala.
Sintaks
HRESULT D3DXComputeTangentFrame(
_In_ ID3DXMesh *pMesh,
_In_ DWORD dwOptions
);
Parameter
-
pMesh [in]
-
Jenis: ID3DXMesh*
Arahkan ke objek mesh ID3DXMesh input.
-
dwOptions [in]
-
Jenis: DWORD
Kombinasi satu atau beberapa bendera D3DXTANGENT .
Gunakan NULL untuk menentukan opsi berikut:
- Berat panjang vektor normal dengan sudut, dalam radian, disusun oleh dua tepi meninggalkan puncak.
- Menghitung koordinat Kartesius ortogonal dari koordinat tekstur UV.
- Tekstur tidak dibungkus dalam arah U atau V
- Turunan parsial sehubungan dengan koordinat tekstur dinormalisasi.
- Simpul diurutkan ke arah berlawanan arah jarum arah di sekitar setiap segitiga.
- Gunakan vektor normal per vertex yang sudah ada dalam jala input.
- Hasilnya akan disimpan dalam jala input asli. Fungsi akan gagal jika simpul baru perlu dibuat.
Menampilkan nilai
Jenis: HRESULT
Jika fungsi berhasil, nilai yang dikembalikan S_OK. Jika fungsi gagal, nilai yang dikembalikan dapat berupa salah satu hal berikut: D3DERR_INVALIDCALL, D3DXERR_INVALIDDATA, E_OUTOFMEMORY.
Keterangan
Fungsi ini hanya memanggil D3DXComputeTangentFrameEx dengan parameter input berikut:
D3DXComputeTangentFrameEx(pMesh, D3DDECLUSAGE_TEXCOORD, 0,
D3DDECLUSAGE_BINORMAL, 0, D3DDECLUSAGE_TANGENT, 0,
D3DDECLUSAGE_NORMAL, 0,
dwOptions | D3DXTANGENT_GENERATE_IN_PLACE,
NULL, 0.01f, 0.25f, 0.01f, NULL, NULL);
Singularitas ditangani sesuai kebutuhan dengan mengelompokkan tepi dan memisahkan simpul. Jika ada simpul yang perlu dipisahkan, fungsi akan gagal. Vektor normal komputasi di setiap puncak selalu dinormalisasi untuk memiliki panjang unit.
Solusi paling kuat untuk menghitung koordinat Kartesius ortogonal adalah tidak mengatur bendera D3DXTANGENT_ORTHOGONALIZE_FROM_U dan D3DXTANGENT_ORTHOGONALIZE_FROM_V, sehingga koordinat ortogonal dihitung dari kedua koordinat tekstur UV. Namun, dalam hal ini, jika U atau V adalah nol, maka fungsi akan menghitung koordinat ortogonal masing-masing menggunakan D3DXTANGENT_ORTHOGONALIZE_FROM_V atau D3DXTANGENT_ORTHOGONALIZE_FROM_U.
Persyaratan
Persyaratan | Nilai |
---|---|
Header |
|
Pustaka |
|
Lihat juga