Bagikan melalui


Fungsi D3DXUVAtlasPartition

Buat atlas UV untuk jala.

Sintaks

HRESULT D3DXUVAtlasPartition(
  _In_        LPD3DXMESH      pMesh,
  _In_        UINT            dwMaxChartNumber,
  _In_        FLOAT           fMaxStretch,
  _In_        DWORD           dwTextureIndex,
  _In_  const DWORD           *pdwAdjacency,
        const DWORD           *pdwFalseEdges,
  _In_        FLOAT           *pfIMTArray,
  _In_        LPD3DXUVATLASCB pCallback,
  _In_        FLOAT           fCallbackFrequency,
  _In_        LPVOID          pUserContent,
  _In_        DWORD           dwOptions,
  _In_        LPD3DXMESH      *ppMeshOut,
  _Out_       LPD3DXBUFFER    pFacePartitioning,
  _Out_       LPD3DXBUFFER    *ppVertexRemapArray,
              LPD3DXBUFFER    *ppPartitionResultAdjacency,
  _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.

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 dengan menggabungkan satu atau beberapa bendera D3DXUVATLAS .

ppMeshOut [in]

Jenis: LPD3DXMESH*

Arahkan ke jala yang dibuat dengan atlas (lihat ID3DXMesh).

pFacePartitioning [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 setiap puncak akhir berasal (jika puncak dipisahkan selama pemindahan ulang). Setiap elemen array berisi satu DWORD per vertex.

ppPartitionResultAdjacency

Jenis: LPD3DXBUFFER*

Alamat penunjuk ke antarmuka ID3DXBuffer . Buffer ini akan berisi array tiga DWORD per wajah yang menentukan tiga tetangga untuk setiap wajah dalam jala output. Parameter ini tidak boleh NULL, karena panggilan berikutnya ke D3DXUVAtlasPack() memerlukannya.

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

D3DXUVAtlasPartition mirip dengan D3DXUVAtlasCreate, kecuali bahwa D3DXUVAtlasPartition tidak melakukan langkah pengemasan akhir.

Persyaratan

Persyaratan Nilai
Header
D3DX9Mesh.h
Pustaka
D3dx9.lib

Lihat juga

Fungsi UVAtlas

Alat Command-Line Atlas UV (uvatlas.exe)