Fungsi D3DXUVAtlasCreate
Buat atlas UV untuk jala.
Sintaks
HRESULT D3DXUVAtlasCreate(
_In_ LPD3DXMESH pMesh,
_In_ UINT dwMaxChartNumber,
_In_ FLOAT fMaxStretch,
_In_ UINT dwWidth,
_In_ UINT dwHeight,
_In_ FLOAT fGutter,
_In_ DWORD dwTextureIndex,
_In_ const DWORD *pdwAdjacency,
const DWORD *pdwFalseEdges,
_In_ FLOAT *pfIMTArray,
_In_ LPD3DXUVATLASCB pCallback,
_In_ FLOAT fCallbackFrequency,
_In_ LPVOID pUserContext,
_In_ DWORD dwOptions,
_In_ LPD3DXMESH *ppMeshOut,
_Out_ LPD3DXBUFFER *ppFacePartitioning,
_Out_ LPD3DXBUFFER *ppVertexRemapArray,
_Out_ FLOAT *pfMaxStretchOut,
_Out_ UINT *pdwNumChartsOut
);
Parameter
-
pMesh [in]
-
Jenis: LPD3DXMESH
Penunjuk ke jala input (lihat ID3DXMesh) yang berisi geometri objek untuk menghitung atlas. Minimal, jala harus berisi data posisi dan koordinat tekstur 2D.
-
dwMaxChartNumber [in]
-
Jenis: UINT
Jumlah maksimum bagan untuk mempartisi jala. Lihat komentar tentang mode partisi. Gunakan 0 untuk memberi tahu D3DX bahwa atlas harus diparameterkan berdasarkan peregangan.
-
fMaxStretch [in]
-
Jenis: FLOAT
Jumlah peregangan yang diizinkan. 0 berarti tidak ada peregangan yang diizinkan, 1 berarti sejumlah peregangan dapat digunakan.
-
dwWidth [in]
-
Jenis: UINT
Lebar tekstur.
-
dwHeight [in]
-
Jenis: UINT
Tinggi tekstur.
-
fGutter [in]
-
Jenis: FLOAT
Jarak minimum, dalam texel, antara dua bagan pada atlas. Selokan selalu diskalakan oleh lebar; jadi, jika selokan 2,5 digunakan pada tekstur 512x512, maka jarak minimum antara dua bagan adalah 2,5 / 512,0 texel.
-
dwTextureIndex [in]
-
Jenis: DWORD
Indeks koordinat tekstur berbasis nol yang mengidentifikasi kumpulan koordinat tekstur mana yang akan digunakan.
-
pdwAdjacency [in]
-
Jenis: const DWORD*
Penunjuk ke array data yang berdekatan. dengan 3 DWORD per wajah, menunjukkan segitiga mana yang berdekatan satu sama lain (lihat ID3DXBaseMesh::GenerateAdjacency).
-
pdwFalseEdges
-
Jenis: const DWORD*
Array dengan 3 DWORDS per wajah. Setiap wajah menunjukkan apakah tepi salah atau tidak. Tepi non-false ditunjukkan oleh -1, tepi palsu ditunjukkan oleh nilai lain. Ini memungkinkan parameterisasi jala quad di mana tepi ke bawah tengah setiap quad tidak akan dipotong.
-
pfIMTArray [in]
-
Jenis: FLOAT*
Penunjuk ke array tensor metrik terintegrasi yang menjelaskan cara meregangkan segitiga (lihat IntegratedMetricTensor).
-
pCallback [in]
-
Jenis: LPD3DXUVATLASCB
Penunjuk ke fungsi panggilan balik (lihat LPD3DXUVATLASCB) yang berguna untuk memantau kemajuan.
-
fCallbackFrequency [in]
-
Jenis: FLOAT
Tentukan seberapa sering D3DX akan memanggil panggilan balik; nilai default yang wajar adalah 0,0001f.
-
pUserContent [in]
-
Jenis: LPVOID
Penunjuk ke nilai yang ditentukan pengguna yang diteruskan ke fungsi panggilan balik; biasanya digunakan oleh aplikasi untuk meneruskan pointer ke struktur data yang menyediakan informasi konteks untuk fungsi panggilan balik.
-
dwOptions [in]
-
Jenis: DWORD
Tentukan kualitas bagan yang dihasilkan. Lihat D3DXUVATLAS.
-
ppMeshOut [in]
-
Jenis: LPD3DXMESH*
Arahkan ke jala yang dibuat dengan atlas (lihat ID3DXMesh).
-
ppFacePartitioning [out]
-
Jenis: LPD3DXBUFFER*
Penunjuk ke array data pemartisian wajah akhir. Setiap elemen berisi satu DWORD per wajah (lihat ID3DXBuffer).
-
ppVertexRemapArray [out]
-
Jenis: LPD3DXBUFFER*
Penunjuk ke array simpul yang dipetakan ulang. Setiap elemen array mengidentifikasi puncak asli yang berasal dari setiap puncak akhir (jika puncak dipisahkan selama pemindahan ulang). Setiap elemen array berisi satu DWORD per vertex.
-
pfMaxStretchOut [out]
-
Jenis: FLOAT*
Penunjuk ke nilai peregangan maksimum yang dihasilkan oleh algoritma atlas. Rentangnya antara 0,0 dan 1,0.
-
pdwNumChartsOut [out]
-
Jenis: UINT*
Penunjuk ke jumlah bagan yang dibuat oleh algoritma atlas. Jika dwMaxChartNumber terlalu rendah, parameter ini akan mengembalikan jumlah minimum bagan yang diperlukan untuk membuat atlas.
Menampilkan nilai
Jenis: HRESULT
Jika fungsi berhasil, nilai yang dikembalikan adalah D3D_OK; jika tidak, nilainya D3DERR_INVALIDCALL.
Keterangan
D3DXUVAtlasCreate dapat mempartisi geometri jala dengan dua cara:
- Berdasarkan jumlah bagan
- Berdasarkan peregangan maksimum yang diizinkan. Jika peregangan maksimum yang diizinkan adalah 0, setiap segitiga kemungkinan akan berada di bagannya sendiri.
Persyaratan
Persyaratan | Nilai |
---|---|
Header |
|
Pustaka |
|
Lihat juga