Sumber Daya Tekstur (Direct3D 9)

Sumber daya tekstur diimplementasikan di antarmuka IDirect3DTexture9 . Untuk mendapatkan pointer ke antarmuka tekstur, panggil metode IDirect3DDevice9::CreateTexture atau salah satu fungsi D3DX berikut.

Contoh kode berikut menggunakan D3DXCreateTextureFromFile untuk memuat tekstur dari Tiger.bmp.

// The following code example assumes that D3dDevice
// is a valid pointer to an IDirect3DDevice9 interface.

LPDIRECT3DTEXTURE9 pTexture;

D3DXCreateTextureFromFile( d3dDevice, "tiger.bmp", &pTexture);

Parameter pertama yang diterima D3DXCreateTextureFromFile adalah penunjuk ke antarmuka IDirect3DDevice9 . Parameter kedua memberi tahu Direct3D nama file untuk memuat tekstur. Parameter ketiga mengambil alamat penunjuk ke antarmuka IDirect3DTexture9 , yang mewakili objek tekstur yang dibuat.

Penyajian dengan Sumber Daya Tekstur

Direct3D mendukung beberapa perpaduan tekstur melalui konsep tahap tekstur. Setiap tahap tekstur berisi tekstur dan operasi yang dapat dilakukan pada tekstur. Tekstur dalam tahap tekstur membentuk set tekstur saat ini. Untuk informasi selengkapnya, lihat Penpaduan Tekstur (Direct3D 9). Status setiap tekstur dienkapsulasi dalam tahap teksturnya.

Dalam aplikasi C++, status setiap tekstur harus diatur dengan metode IDirect3DDevice9::SetTextureStageState . Lewati nomor tahap (0-7) sebagai nilai parameter pertama. Atur nilai parameter kedua ke anggota jenis enumerasi D3DTEXTURESTAGESTATETYPE . Parameter akhir adalah nilai status untuk status tekstur tertentu.

Dengan menggunakan penunjuk antarmuka tekstur, aplikasi Anda dapat merender perpaduan hingga delapan tekstur. Atur tekstur saat ini dengan memanggil metode IDirect3DDevice9::SetTexture . Direct3D memadukan semua tekstur saat ini ke primitif yang direndernya.

Catatan

Metode IDirect3DDevice9::SetTexture menambahkan jumlah referensi permukaan tekstur yang ditetapkan. Ketika tekstur tidak lagi diperlukan, Anda harus mengatur tekstur pada tahap yang sesuai ke NULL. Jika Anda gagal melakukan ini, permukaan tidak akan dirilis, mengakibatkan kebocoran memori.

 

Aplikasi Anda dapat mengatur status pembungkusan tekstur untuk tekstur saat ini dengan memanggil metode IDirect3DDevice9::SetRenderState . Teruskan nilai dari D3DRS_WRAP0 melalui D3DRS_WRAP7 sebagai nilai parameter pertama, dan gunakan kombinasi bendera D3DWRAPCOORD_0, D3DWRAPCOORD_1, D3DWRAPCOORD_2, dan D3DWRAPCOORD_3 untuk mengaktifkan pembungkusan di arah u, v, atau w.

Aplikasi Anda juga dapat mengatur status pemfilteran tekstur dan perspektif tekstur. Lihat Pemfilteran Tekstur (Direct3D 9).

Tekstur Direct3D