ID3DXMesh::Optimalkan metode

Menghasilkan jala baru dengan wajah dan simpul yang diurutkan ulang untuk mengoptimalkan performa menggambar.

Sintaks

HRESULT Optimize(
  [in]            DWORD        Flags,
  [in]      const DWORD        *pAdjacencyIn,
  [in, out]       DWORD        *pAdjacencyOut,
  [in, out]       DWORD        *pFaceRemap,
  [out]           LPD3DXBUFFER *ppVertexRemap,
  [out]           LPD3DXMESH   *ppOptMesh
);

Parameter

Bendera [in]

Jenis: DWORD

Menentukan jenis pengoptimalan yang akan dilakukan. Parameter ini dapat diatur ke kombinasi satu atau beberapa bendera dari D3DXMESHOPT dan D3DXMESH (kecuali D3DXMESH_32BIT, D3DXMESH_IB_WRITEONLY, dan D3DXMESH_WRITEONLY).

pAdjacencyIn [in]

Jenis: const DWORD*

Arahkan ke array tiga DWORD per wajah yang menentukan tiga tetangga untuk setiap wajah dalam jala sumber. Jika tepi tidak memiliki wajah yang berdekatan, nilainya 0xffffffff. Lihat Keterangan.

pAdjacencyOut [in, out]

Jenis: DWORD*

Arahkan ke array tiga DWORD per wajah yang menentukan tiga tetangga untuk setiap wajah dalam jala yang dioptimalkan. Jika tepi tidak memiliki wajah yang berdekatan, nilainya 0xffffffff.

pFaceRemap [masuk, keluar]

Jenis: DWORD*

Array DWORD, satu per wajah, yang mengidentifikasi wajah jala asli yang sesuai dengan setiap wajah dalam jala yang dioptimalkan. Jika nilai yang disediakan untuk argumen ini adalah NULL, data remap wajah tidak dikembalikan.

ppVertexRemap [out]

Jenis: LPD3DXBUFFER*

Alamat penunjuk ke antarmuka ID3DXBuffer , yang berisi DWORD untuk setiap puncak yang menentukan bagaimana simpul baru memetakan ke simpul lama. Remap ini berguna jika Anda perlu mengubah data eksternal berdasarkan pemetaan vertex baru.

ppOptMesh [out]

Jenis: LPD3DXMESH*

Alamat penunjuk ke antarmuka ID3DXMesh , mewakili jala yang dioptimalkan.

Menampilkan nilai

Jenis: HRESULT

Jika metode berhasil, nilai yang dikembalikan D3D_OK. Jika metode gagal, nilai yang dikembalikan dapat berupa salah satu hal berikut: D3DERR_INVALIDCALL, E_OUTOFMEMORY.

Keterangan

Metode ini menghasilkan jala baru. Sebelum menjalankan Optimize, aplikasi harus menghasilkan buffer yang berdampingan dengan memanggil ID3DXBaseMesh::GenerateAdjacency. Buffer yang berdampingan berisi data yang berdampingan, seperti daftar tepi dan wajah yang berdampingan satu sama lain.

Metode ini sangat mirip dengan metode ID3DXBaseMesh::CloneMesh , kecuali bahwa metode ini dapat melakukan pengoptimalan saat menghasilkan klon baru jala. Jala output mewarisi semua parameter pembuatan jala input.

Persyaratan

Persyaratan Nilai
Header
D3DX9Mesh.h
Pustaka
D3dx9.lib

Lihat juga

ID3DXMesh

ID3DXMesh::OptimizeInplace