Bagikan melalui


Status Buffering Kedalaman (Direct3D 9)

Buffering kedalaman adalah metode untuk menghapus garis dan permukaan tersembunyi. Secara default, Direct3D tidak menggunakan buffering kedalaman.

Untuk gambaran umum konseptual buffer kedalaman, lihat Buffer Kedalaman (Direct3D 9).

Aplikasi C++ memperbarui status buffering kedalaman dengan status render D3DRS_ZENABLE, menggunakan anggota enumerasi D3DZBUFFERTYPE untuk menentukan nilai status baru.

Jika aplikasi Anda perlu mencegah Direct3D menulis ke buffer kedalaman, aplikasi dapat menggunakan nilai yang dijumlahkan D3DRS_ZWRITEENABLE, menentukan D3DZB_FALSE sebagai parameter kedua untuk panggilan ke IDirect3DDevice9::SetRenderState.

Contoh kode berikut menunjukkan bagaimana status buffer kedalaman diatur untuk mengaktifkan z-buffering.

// This code example assumes that d3dDevice is a 
// valid pointer to an IDirect3DDevice9 interface.
// Enable z-buffering.
d3dDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);

Aplikasi Anda juga dapat menggunakan status render D3DRS_ZFUNC untuk mengontrol fungsi perbandingan yang digunakan Direct3D saat melakukan buffering kedalaman.

Z-biasing adalah metode untuk menampilkan satu permukaan di depan permukaan lain, bahkan jika nilai kedalamannya sama. Anda dapat menggunakan teknik ini untuk berbagai efek. Contoh umumnya adalah merender bayangan di dinding. Baik bayangan maupun dinding memiliki nilai kedalaman yang sama. Namun, Anda ingin aplikasi Anda menunjukkan bayangan di dinding. Memberikan bias z pada bayangan membuat Direct3D menampilkannya dengan benar (lihat D3DRS_DEPTHBIAS).

Status Render