enumerasi D3DRENDERSTATETYPE

Status render menentukan status pengaturan untuk semua jenis vertex dan pemrosesan piksel. Beberapa status render menyiapkan pemrosesan vertex, dan beberapa menyiapkan pemrosesan piksel (lihat Status Render (Direct3D 9)). Status render dapat disimpan dan dipulihkan menggunakan stateblocks (lihat Status Simpan dan Pulihkan Blok Status (Direct3D 9)).

Sintaks

typedef enum D3DRENDERSTATETYPE { 
  D3DRS_ZENABLE                     = 7,
  D3DRS_FILLMODE                    = 8,
  D3DRS_SHADEMODE                   = 9,
  D3DRS_ZWRITEENABLE                = 14,
  D3DRS_ALPHATESTENABLE             = 15,
  D3DRS_LASTPIXEL                   = 16,
  D3DRS_SRCBLEND                    = 19,
  D3DRS_DESTBLEND                   = 20,
  D3DRS_CULLMODE                    = 22,
  D3DRS_ZFUNC                       = 23,
  D3DRS_ALPHAREF                    = 24,
  D3DRS_ALPHAFUNC                   = 25,
  D3DRS_DITHERENABLE                = 26,
  D3DRS_ALPHABLENDENABLE            = 27,
  D3DRS_FOGENABLE                   = 28,
  D3DRS_SPECULARENABLE              = 29,
  D3DRS_FOGCOLOR                    = 34,
  D3DRS_FOGTABLEMODE                = 35,
  D3DRS_FOGSTART                    = 36,
  D3DRS_FOGEND                      = 37,
  D3DRS_FOGDENSITY                  = 38,
  D3DRS_RANGEFOGENABLE              = 48,
  D3DRS_STENCILENABLE               = 52,
  D3DRS_STENCILFAIL                 = 53,
  D3DRS_STENCILZFAIL                = 54,
  D3DRS_STENCILPASS                 = 55,
  D3DRS_STENCILFUNC                 = 56,
  D3DRS_STENCILREF                  = 57,
  D3DRS_STENCILMASK                 = 58,
  D3DRS_STENCILWRITEMASK            = 59,
  D3DRS_TEXTUREFACTOR               = 60,
  D3DRS_WRAP0                       = 128,
  D3DRS_WRAP1                       = 129,
  D3DRS_WRAP2                       = 130,
  D3DRS_WRAP3                       = 131,
  D3DRS_WRAP4                       = 132,
  D3DRS_WRAP5                       = 133,
  D3DRS_WRAP6                       = 134,
  D3DRS_WRAP7                       = 135,
  D3DRS_CLIPPING                    = 136,
  D3DRS_LIGHTING                    = 137,
  D3DRS_AMBIENT                     = 139,
  D3DRS_FOGVERTEXMODE               = 140,
  D3DRS_COLORVERTEX                 = 141,
  D3DRS_LOCALVIEWER                 = 142,
  D3DRS_NORMALIZENORMALS            = 143,
  D3DRS_DIFFUSEMATERIALSOURCE       = 145,
  D3DRS_SPECULARMATERIALSOURCE      = 146,
  D3DRS_AMBIENTMATERIALSOURCE       = 147,
  D3DRS_EMISSIVEMATERIALSOURCE      = 148,
  D3DRS_VERTEXBLEND                 = 151,
  D3DRS_CLIPPLANEENABLE             = 152,
  D3DRS_POINTSIZE                   = 154,
  D3DRS_POINTSIZE_MIN               = 155,
  D3DRS_POINTSPRITEENABLE           = 156,
  D3DRS_POINTSCALEENABLE            = 157,
  D3DRS_POINTSCALE_A                = 158,
  D3DRS_POINTSCALE_B                = 159,
  D3DRS_POINTSCALE_C                = 160,
  D3DRS_MULTISAMPLEANTIALIAS        = 161,
  D3DRS_MULTISAMPLEMASK             = 162,
  D3DRS_PATCHEDGESTYLE              = 163,
  D3DRS_DEBUGMONITORTOKEN           = 165,
  D3DRS_POINTSIZE_MAX               = 166,
  D3DRS_INDEXEDVERTEXBLENDENABLE    = 167,
  D3DRS_COLORWRITEENABLE            = 168,
  D3DRS_TWEENFACTOR                 = 170,
  D3DRS_BLENDOP                     = 171,
  D3DRS_POSITIONDEGREE              = 172,
  D3DRS_NORMALDEGREE                = 173,
  D3DRS_SCISSORTESTENABLE           = 174,
  D3DRS_SLOPESCALEDEPTHBIAS         = 175,
  D3DRS_ANTIALIASEDLINEENABLE       = 176,
  D3DRS_MINTESSELLATIONLEVEL        = 178,
  D3DRS_MAXTESSELLATIONLEVEL        = 179,
  D3DRS_ADAPTIVETESS_X              = 180,
  D3DRS_ADAPTIVETESS_Y              = 181,
  D3DRS_ADAPTIVETESS_Z              = 182,
  D3DRS_ADAPTIVETESS_W              = 183,
  D3DRS_ENABLEADAPTIVETESSELLATION  = 184,
  D3DRS_TWOSIDEDSTENCILMODE         = 185,
  D3DRS_CCW_STENCILFAIL             = 186,
  D3DRS_CCW_STENCILZFAIL            = 187,
  D3DRS_CCW_STENCILPASS             = 188,
  D3DRS_CCW_STENCILFUNC             = 189,
  D3DRS_COLORWRITEENABLE1           = 190,
  D3DRS_COLORWRITEENABLE2           = 191,
  D3DRS_COLORWRITEENABLE3           = 192,
  D3DRS_BLENDFACTOR                 = 193,
  D3DRS_SRGBWRITEENABLE             = 194,
  D3DRS_DEPTHBIAS                   = 195,
  D3DRS_WRAP8                       = 198,
  D3DRS_WRAP9                       = 199,
  D3DRS_WRAP10                      = 200,
  D3DRS_WRAP11                      = 201,
  D3DRS_WRAP12                      = 202,
  D3DRS_WRAP13                      = 203,
  D3DRS_WRAP14                      = 204,
  D3DRS_WRAP15                      = 205,
  D3DRS_SEPARATEALPHABLENDENABLE    = 206,
  D3DRS_SRCBLENDALPHA               = 207,
  D3DRS_DESTBLENDALPHA              = 208,
  D3DRS_BLENDOPALPHA                = 209,
  D3DRS_FORCE_DWORD                 = 0x7fffffff
} D3DRENDERSTATETYPE, *LPD3DRENDERSTATETYPE;

Konstanta

D3DRS_ZENABLE

Status buffer kedalaman sebagai salah satu anggota jenis enumerasi D3DZBUFFERTYPE. Atur status ini ke D3DZB_TRUE untuk mengaktifkan z-buffering, D3DZB_USEW untuk mengaktifkan w-buffering, atau D3DZB_FALSE untuk menonaktifkan buffering kedalaman.

Nilai default untuk status render ini D3DZB_TRUE jika stensil kedalaman dibuat bersama dengan rantai pertukaran dengan mengatur anggota EnableAutoDepthStencil dari struktur D3DPRESENT_PARAMETERS ke TRUE, dan D3DZB_FALSE sebaliknya.

D3DRS_FILLMODE

Satu atau beberapa anggota jenis enumerasi D3DFILLMODE. Nilai defaultnya adalah D3DFILL_SOLID.

D3DRS_SHADEMODE

Satu atau beberapa anggota jenis D3DSHADEMODE yang dijumlahkan. Nilai defaultnya adalah D3DSHADE_GOURAUD.

D3DRS_ZWRITEENABLE

TRUE untuk mengaktifkan aplikasi untuk menulis ke buffer kedalaman. Nilai defaultnya adalah TRUE. Anggota ini memungkinkan aplikasi untuk mencegah sistem memperbarui buffer kedalaman dengan nilai kedalaman baru. Jika FALSE, perbandingan kedalaman masih dibuat sesuai dengan status render D3DRS_ZFUNC, dengan asumsi bahwa buffering kedalaman sedang berlangsung, tetapi nilai kedalaman tidak ditulis ke buffer.

D3DRS_ALPHATESTENABLE

TRUE untuk mengaktifkan pengujian alfa per piksel. Jika pengujian lolos, piksel diproses oleh buffer bingkai. Jika tidak, semua pemrosesan buffer bingkai dilewati untuk piksel.

Pengujian dilakukan dengan membandingkan nilai alfa masuk dengan nilai alfa referensi, menggunakan fungsi perbandingan yang disediakan oleh status render D3DRS_ALPHAFUNC. Nilai alfa referensi ditentukan oleh nilai yang ditetapkan untuk D3DRS_ALPHAREF. Untuk informasi selengkapnya, lihat Status Pengujian Alfa (Direct3D 9).

Nilai default parameter ini adalah FALSE.

D3DRS_LASTPIXEL

Nilai defaultnya adalah TRUE, yang memungkinkan gambar piksel terakhir dalam satu baris. Untuk mencegah gambar piksel terakhir, atur nilai ini ke FALSE. Untuk informasi selengkapnya, lihat Kerangka dan Status Isi (Direct3D 9).

D3DRS_SRCBLEND

Salah satu anggota jenis enumerasi D3DBLEND. Nilai defaultnya adalah D3DBLEND_ONE.

D3DRS_DESTBLEND

Salah satu anggota jenis enumerasi D3DBLEND. Nilai defaultnya adalah D3DBLEND_ZERO.

D3DRS_CULLMODE

Menentukan bagaimana segitiga yang menghadap ke belakang dimusnahkan, jika sama sekali. Ini dapat diatur ke satu anggota jenis enumerasi D3DCULL. Nilai defaultnya adalah D3DCULL_CCW.

D3DRS_ZFUNC

Salah satu anggota jenis enumerasi D3DCMPFUNC. Nilai defaultnya adalah D3DCMP_LESSEQUAL. Anggota ini memungkinkan aplikasi untuk menerima atau menolak piksel, berdasarkan jaraknya dari kamera.

Nilai kedalaman piksel dibandingkan dengan nilai buffer kedalaman. Jika nilai kedalaman piksel melewati fungsi perbandingan, piksel akan ditulis.

Nilai kedalaman ditulis ke buffer kedalaman hanya jika status render TRUE.

Rasterizer perangkat lunak dan banyak akselerator perangkat keras bekerja lebih cepat jika pengujian kedalaman gagal, karena tidak perlu memfilter dan memodulasi tekstur jika piksel tidak akan dirender.

D3DRS_ALPHAREF

Nilai yang menentukan nilai alfa referensi dengan piksel mana yang diuji saat pengujian alfa diaktifkan. Ini adalah nilai 8-bit yang ditempatkan dalam 8 bit rendah dari nilai status render DWORD. Nilai dapat berkisar dari 0x00000000 hingga 0x000000FF. Nilai default adalah 0.

D3DRS_ALPHAFUNC

Salah satu anggota jenis enumerasi D3DCMPFUNC. Nilai defaultnya adalah D3DCMP_ALWAYS. Anggota ini memungkinkan aplikasi untuk menerima atau menolak piksel, berdasarkan nilai alfanya.

D3DRS_DITHERENABLE

TRUE untuk mengaktifkan dithering. Nilai defaultnya adalah FALSE.

D3DRS_ALPHABLENDENABLE

TRUE untuk mengaktifkan transparansi alpha-blended. Nilai defaultnya adalah FALSE.

Jenis pencamburan alfa ditentukan oleh status render D3DRS_SRCBLEND dan D3DRS_DESTBLEND.

D3DRS_FOGENABLE

TRUE untuk mengaktifkan blending kabut. Nilai defaultnya adalah FALSE. Untuk informasi selengkapnya tentang menggunakan blending kabut, lihat Kabut.

D3DRS_SPECULARENABLE

TRUE untuk mengaktifkan sorotan spekular. Nilai defaultnya adalah FALSE.

Sorotan spekular dihitung seolah-olah setiap puncak dalam objek yang menyala berada di asal objek. Ini memberikan hasil yang diharapkan selama objek dimodelkan di sekitar asal dan jarak dari cahaya ke objek relatif besar. Dalam kasus lain, hasilnya sebagai tidak terdefinisi.

Ketika anggota ini diatur ke TRUE, warna spekular ditambahkan ke warna dasar setelah tekstur bertingkat tetapi sebelum pencambukan alfa.

D3DRS_FOGCOLOR

Nilai yang jenisnya D3DCOLOR. Nilai default adalah 0. Untuk informasi selengkapnya tentang warna kabut, lihat Warna Kabut (Direct3D 9).

D3DRS_FOGTABLEMODE

Rumus kabut yang akan digunakan untuk kabut piksel. Atur ke salah satu anggota jenis enumerasi D3DFOGMODE. Nilai defaultnya adalah D3DFOG_NONE. Untuk informasi selengkapnya tentang kabut piksel, lihat Pixel Fog (Direct3D 9).

D3DRS_FOGSTART

Kedalaman di mana efek kabut piksel atau vertex dimulai untuk mode kabut linier. Nilai defaultnya adalah 0,0f. Kedalaman ditentukan di ruang dunia untuk kabut puncak dan ruang perangkat [0.0, 1.0] atau ruang dunia untuk kabut piksel. Untuk kabut piksel, nilai-nilai ini berada di ruang perangkat ketika sistem menggunakan z untuk perhitungan kabut dan ruang dunia ketika sistem menggunakan kabut relatif mata (w-fog). Untuk informasi selengkapnya, lihat Parameter Kabut (Direct3D 9) dan Eye-Relative vs. Kedalaman berbasis Z.

Nilai untuk status render ini adalah nilai floating-point. Karena metode IDirect3DDevice9::SetRenderState menerima nilai DWORD, aplikasi Anda harus mentransmisikan variabel yang berisi nilai, seperti yang ditunjukkan dalam contoh kode berikut.

pDevice9->SetRenderState(D3DRS_FOGSTART, 
                         *((DWORD*) (&fFogStart)));

D3DRS_FOGEND

Kedalaman di mana efek kabut piksel atau puncak berakhir untuk mode kabut linier. Nilai defaultnya adalah 1,0f. Kedalaman ditentukan di ruang dunia untuk kabut puncak dan ruang perangkat [0.0, 1.0] atau ruang dunia untuk kabut piksel. Untuk kabut piksel, nilai-nilai ini berada di ruang perangkat ketika sistem menggunakan z untuk perhitungan kabut dan di ruang dunia ketika sistem menggunakan kabut relatif mata (w-fog). Untuk informasi selengkapnya, lihat Parameter Kabut (Direct3D 9) dan Eye-Relative vs. Kedalaman berbasis Z.

Nilai untuk status render ini adalah nilai floating-point. Karena metode IDirect3DDevice9::SetRenderState menerima nilai DWORD, aplikasi Anda harus mentransmisikan variabel yang berisi nilai, seperti yang ditunjukkan dalam contoh kode berikut.

m_pDevice9->SetRenderState(D3DRS_FOGEND, *((DWORD*) (&fFogEnd)));

D3DRS_FOGDENSITY

Kepadatan kabut untuk kabut piksel atau puncak yang digunakan dalam mode kabut eksponensial (D3DFOG_EXP dan D3DFOG_EXP2). Nilai kepadatan yang valid berkisar antara 0,0 hingga 1,0. Nilai defaultnya adalah 1,0. Untuk informasi selengkapnya, lihat Parameter Kabut (Direct3D 9).

Nilai untuk status render ini adalah nilai floating-point. Karena metode IDirect3DDevice9::SetRenderState menerima nilai DWORD, aplikasi Anda harus mentransmisikan variabel yang berisi nilai, seperti yang ditunjukkan dalam contoh kode berikut.

    m_pDevice9->SetRenderState(D3DRS_FOGDENSITY, *((DWORD*) (&fFogDensity)));

D3DRS_RANGEFOGENABLE

TRUE untuk mengaktifkan kabut verteks berbasis rentang. Nilai defaultnya adalah FALSE, dalam hal ini sistem menggunakan kabut berbasis kedalaman. Dalam kabut berbasis rentang, jarak objek dari penampil digunakan untuk menghitung efek kabut, bukan kedalaman objek (yaitu, koordinat z) di adegan. Dalam kabut berbasis rentang, semua metode kabut berfungsi seperti biasa, kecuali bahwa mereka menggunakan rentang alih-alih kedalaman dalam komputasi.

Rentang adalah faktor yang benar untuk digunakan untuk komputasi kabut, tetapi kedalaman umumnya digunakan sebagai gantinya karena rentang memakan waktu untuk komputasi dan kedalaman umumnya sudah tersedia. Menggunakan kedalaman untuk menghitung kabut memiliki efek yang tidak diinginkan karena kabut objek periferal berubah saat mata penampil bergerak - dalam hal ini, kedalaman berubah dan rentang tetap konstan.

Karena saat ini tidak ada perangkat keras yang mendukung kabut berbasis rentang per piksel, koreksi rentang hanya ditawarkan untuk kabut vertex.

Untuk informasi selengkapnya, lihat Vertex Fog (Direct3D 9).

D3DRS_STENCILENABLE

TRUE untuk mengaktifkan stensil, atau FALSE untuk menonaktifkan stensil. Nilai defaultnya adalah FALSE. Untuk informasi selengkapnya, lihat Teknik Buffer Stensil (Direct3D 9).

D3DRS_STENCILFAIL

Operasi stensil untuk dilakukan jika pengujian stensil gagal. Nilai berasal dari jenis enumerasi D3DSTENCILOP. Nilai defaultnya adalah D3DSTENCILOP_KEEP.

D3DRS_STENCILZFAIL

Operasi stensil untuk dilakukan jika pengujian stensil lulus dan uji kedalaman (z-test) gagal. Nilai berasal dari jenis enumerasi D3DSTENCILOP. Nilai defaultnya adalah D3DSTENCILOP_KEEP.

D3DRS_STENCILPASS

Operasi stensil untuk dilakukan jika pengujian stensil dan kedalaman (z) lulus. Nilai berasal dari jenis enumerasi D3DSTENCILOP. Nilai defaultnya adalah D3DSTENCILOP_KEEP.

D3DRS_STENCILFUNC

Fungsi perbandingan untuk pengujian stensil. Nilai berasal dari jenis enumerasi D3DCMPFUNC. Nilai defaultnya adalah D3DCMP_ALWAYS.

Fungsi perbandingan digunakan untuk membandingkan nilai referensi dengan entri buffer stensil. Perbandingan ini hanya berlaku untuk bit dalam nilai referensi dan entri buffer stensil yang diatur dalam masker stensil (diatur oleh status render D3DRS_STENCILMASK). Jika TRUE, pengujian stensil lolos.

D3DRS_STENCILREF

Nilai referensi int untuk pengujian stensil. Nilai default adalah 0.

D3DRS_STENCILMASK

Masker diterapkan ke nilai referensi dan setiap entri buffer stensil untuk menentukan bit signifikan untuk pengujian stensil. Masker default adalah 0xFFFFFFFF.

D3DRS_STENCILWRITEMASK

Tulis masker yang diterapkan ke nilai yang ditulis ke dalam buffer stensil. Masker default adalah 0xFFFFFFFF.

D3DRS_TEXTUREFACTOR

Warna yang digunakan untuk perpaduan beberapa tekstur dengan argumen D3DTA_TFACTOR tekstur-blending atau operasi D3DTOP_BLENDFACTORALPHA tekstur-blending. Nilai terkait adalah variabel D3DCOLOR. Nilai defaultnya adalah putih buram (0xFFFFFFFF).

D3DRS_WRAP0

Perilaku pembungkusan tekstur untuk beberapa set koordinat tekstur. Nilai yang valid untuk status render ini bisa berupa kombinasi dari bendera D3DWRAPCOORD_0 (atau D3DWRAP_U), D3DWRAPCOORD_1 (atau D3DWRAP_V), D3DWRAPCOORD_2 (atau D3DWRAP_W), dan D3DWRAPCOORD_3. Ini menyebabkan sistem membungkus ke arah dimensi pertama, kedua, ketiga, dan keempat, kadang-kadang disebut sebagai arah s, t, r, dan q, untuk tekstur tertentu. Nilai default untuk status render ini adalah 0 (pembungkusan dinonaktifkan di semua arah).

D3DRS_WRAP1

Lihat D3DRS_WRAP0.

D3DRS_WRAP2

Lihat D3DRS_WRAP0.

D3DRS_WRAP3

Lihat D3DRS_WRAP0.

D3DRS_WRAP4

Lihat D3DRS_WRAP0.

D3DRS_WRAP5

Lihat D3DRS_WRAP0.

D3DRS_WRAP6

Lihat D3DRS_WRAP0.

D3DRS_WRAP7

Lihat D3DRS_WRAP0.

D3DRS_CLIPPING

TRUE untuk mengaktifkan kliping primitif oleh Direct3D, atau FALSE untuk menonaktifkannya. Nilai defaultnya adalah TRUE.

D3DRS_LIGHTING

TRUE untuk mengaktifkan pencahayaan Direct3D, atau FALSE untuk menonaktifkannya. Nilai defaultnya adalah TRUE. Hanya simpul yang menyertakan puncak normal yang dinyalakan dengan benar; simpul yang tidak mengandung normal menggunakan produk titik 0 di semua perhitungan pencahayaan.

D3DRS_AMBIENT

Warna cahaya sekitar. Nilai ini berjenis D3DCOLOR. Nilai default adalah 0.

D3DRS_FOGVERTEXMODE

Rumus kabut yang akan digunakan untuk kabut puncak. Atur ke satu anggota jenis enumerasi D3DFOGMODE. Nilai defaultnya adalah D3DFOG_NONE.

D3DRS_COLORVERTEX

TRUE untuk mengaktifkan warna per vertex atau FALSE untuk menonaktifkannya. Nilai defaultnya adalah TRUE. Mengaktifkan warna per vertex memungkinkan sistem untuk menyertakan warna yang ditentukan untuk simpul individual dalam perhitungan pencahayaannya.

Untuk informasi selengkapnya, lihat status render berikut ini:

  • D3DRS_DIFFUSEMATERIALSOURCE
  • D3DRS_SPECULARMATERIALSOURCE
  • D3DRS_AMBIENTMATERIALSOURCE
  • D3DRS_EMISSIVEMATERIALSOURCE

D3DRS_LOCALVIEWER

TRUE untuk mengaktifkan sorotan spekular relatif kamera, atau FALSE untuk menggunakan sorotan spekular orthogonal. Nilai defaultnya adalah TRUE. Aplikasi yang menggunakan proyeksi ortogonal harus menentukan FALSE.

D3DRS_NORMALIZENORMALS

TRUE untuk mengaktifkan normalisasi otomatis normal vertex, atau FALSE untuk menonaktifkannya. Nilai defaultnya adalah FALSE. Mengaktifkan fitur ini menyebabkan sistem menormalkan normal puncak untuk simpul setelah mengubahnya ke ruang kamera, yang dapat memakan waktu komputasi.

D3DRS_DIFFUSEMATERIALSOURCE

Sumber warna difus untuk perhitungan pencahayaan. Nilai yang valid adalah anggota dari jenis enumerasi D3DMATERIALCOLORSOURCE. Nilai defaultnya adalah D3DMCS_COLOR1. Nilai untuk status render ini hanya digunakan jika status render D3DRS_COLORVERTEX diatur ke TRUE.

D3DRS_SPECULARMATERIALSOURCE

Sumber warna spekular untuk perhitungan pencahayaan. Nilai yang valid adalah anggota dari jenis enumerasi D3DMATERIALCOLORSOURCE. Nilai defaultnya adalah D3DMCS_COLOR2.

D3DRS_AMBIENTMATERIALSOURCE

Sumber warna sekitar untuk perhitungan pencahayaan. Nilai yang valid adalah anggota dari jenis enumerasi D3DMATERIALCOLORSOURCE. Nilai defaultnya adalah D3DMCS_MATERIAL.

D3DRS_EMISSIVEMATERIALSOURCE

Sumber warna emisi untuk perhitungan pencahayaan. Nilai yang valid adalah anggota dari jenis enumerasi D3DMATERIALCOLORSOURCE. Nilai defaultnya adalah D3DMCS_MATERIAL.

D3DRS_VERTEXBLEND

Jumlah matriks yang digunakan untuk melakukan pencambukan geometri, jika ada. Nilai yang valid adalah anggota jenis enumerasi D3DVERTEXBLENDFLAGS. Nilai defaultnya adalah D3DVBF_DISABLE.

D3DRS_CLIPPLANEENABLE

Mengaktifkan atau menonaktifkan bidang kliping yang ditentukan pengguna. Nilai yang valid adalah DWORD apa pun di mana status setiap bit (diatur atau tidak diatur) mengalihkan status aktivasi dari bidang kliping yang ditentukan pengguna yang sesuai. Bit paling tidak signifikan (bit 0) mengontrol bidang kliping pertama pada indeks 0, dan bit berikutnya mengontrol aktivasi bidang kliping pada indeks yang lebih tinggi. Jika sedikit diatur, sistem menerapkan bidang kliping yang sesuai selama penyajian adegan. Nilai default adalah 0.

Makro D3DCLIPPLANEn didefinisikan untuk menyediakan cara yang mudah untuk mengaktifkan bidang kliping.

D3DRS_POINTSIZE

Nilai float yang menentukan ukuran yang akan digunakan untuk komputasi ukuran titik dalam kasus di mana ukuran titik tidak ditentukan untuk setiap vertex. Nilai ini tidak digunakan ketika vertex berisi ukuran titik. Nilai ini berada di unit ruang layar jika D3DRS_POINTSCALEENABLE FALSE; jika tidak, nilai ini berada di unit ruang dunia. Nilai default adalah nilai yang dikembalikan driver. Jika driver mengembalikan 0 atau 1, nilai defaultnya adalah 64, yang memungkinkan emulasi ukuran titik perangkat lunak. Karena metode IDirect3DDevice9::SetRenderState menerima nilai DWORD, aplikasi Anda harus mentransmisikan variabel yang berisi nilai, seperti yang ditunjukkan dalam contoh kode berikut.

m_pDevice9->SetRenderState(D3DRS_POINTSIZE, *((DWORD*)&pointSize));

D3DRS_POINTSIZE_MIN

Nilai float yang menentukan ukuran minimum primitif titik. Primitif titik dijepit ke ukuran ini selama penyajian. Mengatur ini ke nilai yang lebih kecil dari 1,0 menghasilkan penurunan poin ketika titik tidak mencakup pusat piksel dan antialias dinonaktifkan atau dirender dengan intensitas yang berkurang saat antialias diaktifkan. Nilai defaultnya adalah 1,0f. Rentang untuk nilai ini lebih besar dari atau sama dengan 0,0f. Karena metode IDirect3DDevice9::SetRenderState menerima nilai DWORD, aplikasi Anda harus mentransmisikan variabel yang berisi nilai, seperti yang ditunjukkan dalam contoh kode berikut.

m_pDevice9->SetRenderState(D3DRS_POINTSIZE_MIN, *((DWORD*)&pointSizeMin));

D3DRS_POINTSPRITEENABLE

nilai bool. Ketika TRUE, koordinat tekstur primitif titik diatur sehingga tekstur lengkap dipetakan pada setiap titik. Saat FALSE, koordinat tekstur puncak digunakan untuk seluruh titik. Nilai defaultnya adalah FALSE. Anda dapat mencapai titik piksel tunggal gaya DirectX 7 dengan mengatur D3DRS_POINTSCALEENABLE ke FALSE dan D3DRS_POINTSIZE ke 1,0, yang merupakan nilai default.

D3DRS_POINTSCALEENABLE

nilai bool yang mengontrol komputasi ukuran untuk titik primitif. Ketika TRUE, ukuran titik ditafsirkan sebagai nilai ruang kamera dan diskalakan oleh fungsi jarak dan frustum untuk melihat penskalaan sumbu y untuk menghitung ukuran titik ruang layar akhir. Saat FALSE, ukuran titik ditafsirkan sebagai ruang layar dan digunakan secara langsung. Nilai defaultnya adalah FALSE.

D3DRS_POINTSCALE_A

Nilai float yang mengontrol pelambatan ukuran berbasis jarak untuk titik primitif. Aktif hanya saat D3DRS_POINTSCALEENABLE TRUE. Nilai defaultnya adalah 1,0f. Rentang untuk nilai ini lebih besar dari atau sama dengan 0,0f. Karena metode IDirect3DDevice9::SetRenderState menerima nilai DWORD, aplikasi Anda harus mentransmisikan variabel yang berisi nilai, seperti yang ditunjukkan dalam contoh kode berikut.

m_pDevice9->SetRenderState(D3DRS_POINTSCALE_A, *((DWORD*)&pointScaleA));

D3DRS_POINTSCALE_B

Nilai float yang mengontrol pelambatan ukuran berbasis jarak untuk titik primitif. Aktif hanya saat D3DRS_POINTSCALEENABLE TRUE. Nilai defaultnya adalah 0,0f. Rentang untuk nilai ini lebih besar dari atau sama dengan 0,0f. Karena metode IDirect3DDevice9::SetRenderState menerima nilai DWORD, aplikasi Anda harus mentransmisikan variabel yang berisi nilai, seperti yang ditunjukkan dalam contoh kode berikut.

m_pDevice9->SetRenderState(D3DRS_POINTSCALE_B, *((DWORD*)&pointScaleB));

D3DRS_POINTSCALE_C

Nilai float yang mengontrol pelambatan ukuran berbasis jarak untuk titik primitif. Aktif hanya saat D3DRS_POINTSCALEENABLE TRUE. Nilai defaultnya adalah 0,0f. Rentang untuk nilai ini lebih besar dari atau sama dengan 0,0f. Karena metode IDirect3DDevice9::SetRenderState menerima nilai DWORD, aplikasi Anda harus mentransmisikan variabel yang berisi nilai, seperti yang ditunjukkan dalam contoh kode berikut.

m_pDevice9->SetRenderState(D3DRS_POINTSCALE_C, *((DWORD*)&pointScaleC));

D3DRS_MULTISAMPLEANTIALIAS

nilai bool yang menentukan bagaimana sampel individual dihitung saat menggunakan buffer target render multisample. Ketika diatur ke TRUE, beberapa sampel dihitung sehingga antialias adegan penuh dilakukan dengan pengambilan sampel pada posisi sampel yang berbeda untuk setiap beberapa sampel. Saat diatur ke FALSE, semua sampel ditulis dengan nilai sampel yang sama, diambil sampelnya di pusat piksel, yang memungkinkan penyajian non-antialisis ke buffer multisample. Status render ini tidak berpengaruh saat merender ke buffer sampel tunggal. Nilai defaultnya adalah TRUE.

D3DRS_MULTISAMPLEMASK

Setiap bit dalam masker ini, mulai dari bit paling tidak signifikan (LSB), mengontrol modifikasi salah satu sampel dalam target render multisample. Dengan demikian, untuk target render 8 sampel, byte rendah berisi delapan penulisan memungkinkan untuk masing-masing dari delapan sampel. Status render ini tidak berpengaruh saat merender ke buffer sampel tunggal. Nilai defaultnya adalah 0xFFFFFFFF.

Status render ini memungkinkan penggunaan buffer multisample sebagai buffer akumulasi, melakukan rendering multipass geometri di mana setiap pass memperbarui subset sampel.

Jika ada sampel yang diaktifkan n multisampel dan k, intensitas yang dihasilkan dari gambar yang dirender harus k/n. Setiap RGB komponen dari setiap piksel diperhitungkan oleh k/n.

D3DRS_PATCHEDGESTYLE

Mengatur apakah tepi patch akan menggunakan tesselulasi gaya float. Nilai yang mungkin ditentukan oleh jenis enumerasi D3DPATCHEDGESTYLE. Nilai defaultnya adalah D3DPATCHEDGE_DISCRETE.

D3DRS_DEBUGMONITORTOKEN

Atur hanya untuk penelusuran kesalahan monitor. Nilai yang mungkin ditentukan oleh jenis enumerasi D3DDEBUGMONITORTOKENS. Perhatikan bahwa jika D3DRS_DEBUGMONITORTOKEN diatur, panggilan diperlakukan sebagai meneruskan token ke monitor debug. Misalnya, jika - setelah meneruskan D3DDMT_ENABLE atau D3DDMT_DISABLE ke D3DRS_DEBUGMONITORTOKEN - nilai token lain diteruskan, status (diaktifkan atau dinonaktifkan) monitor debug masih akan bertahan.

Status ini hanya berguna untuk build debug. Monitor debug default ke D3DDMT_ENABLE.

D3DRS_POINTSIZE_MAX

Nilai float yang menentukan ukuran maksimum sprite titik mana yang akan dijepit. Nilai harus kurang dari atau sama dengan anggota MaxPointSize dari D3DCAPS9 dan lebih besar dari atau sama dengan D3DRS_POINTSIZE_MIN. Nilai defaultnya adalah 64,0. Karena metode IDirect3DDevice9::SetRenderState menerima nilai DWORD, aplikasi Anda harus mentransmisikan variabel yang berisi nilai, seperti yang ditunjukkan dalam contoh kode berikut.

m_pDevice9->SetRenderState(D3DRS_PONTSIZE_MAX, *((DWORD*)&pointSizeMax));

D3DRS_INDEXEDVERTEXBLENDENABLE

nilai bool yang mengaktifkan atau menonaktifkan blending vertex terindeks. Nilai defaultnya adalah FALSE. Ketika diatur ke TRUE, blending vertex terindeks diaktifkan. Ketika diatur ke FALSE, blending vertex terindeks dinonaktifkan. Jika status render ini diaktifkan, pengguna harus meneruskan indeks matriks sebagai DWORD yang dikemas dengan setiap puncak. Ketika status render dinonaktifkan dan blending vertex diaktifkan melalui status D3DRS_VERTEXBLEND, setara dengan memiliki indeks matriks 0, 1, 2, 3 di setiap puncak.

D3DRS_COLORWRITEENABLE

Nilai UINT yang memungkinkan penulisan per saluran untuk buffer warna target render. Bit yang ditetapkan menghasilkan saluran warna yang diperbarui selama penyajian 3D. Bit yang jelas mengakibatkan saluran warna tidak terpengaruh. Fungsionalitas ini tersedia jika bit kemampuan D3DPMISCCAPS_COLORWRITEENABLE diatur dalam anggota PrimitiveMiscCaps dari struktur D3DCAPS9 untuk perangkat. Status render ini tidak memengaruhi operasi yang jelas. Nilai defaultnya adalah 0x0000000F.

Nilai yang valid untuk status render ini dapat berupa kombinasi bendera D3DCOLORWRITEENABLE_ALPHA, D3DCOLORWRITEENABLE_BLUE, D3DCOLORWRITEENABLE_GREEN, atau D3DCOLORWRITEENABLE_RED.

D3DRS_TWEENFACTOR

Nilai float yang mengontrol faktor tween. Nilai defaultnya adalah 0,0f. Karena metode IDirect3DDevice9::SetRenderState menerima nilai DWORD, aplikasi Anda harus mentransmisikan variabel yang berisi nilai, seperti yang ditunjukkan dalam contoh kode berikut.

m_pDevice9->SetRenderState(D3DRS_TWEENFACTOR, *((DWORD*)&TweenFactor));

D3DRS_BLENDOP

Nilai yang digunakan untuk memilih operasi aritmatika yang diterapkan saat status render pencambahan alfa, D3DRS_ALPHABLENDENABLE, diatur ke TRUE. Nilai yang valid ditentukan oleh jenis enumerasi D3DBLENDOP. Nilai defaultnya adalah D3DBLENDOP_ADD.

Jika kemampuan perangkat D3DPMISCCAPS_BLENDOP tidak didukung, maka D3DBLENDOP_ADD dilakukan.

D3DRS_POSITIONDEGREE

Tingkat interpolasi posisi N-patch. Nilai dapat D3DDEGREE_CUBIC (default) atau D3DDEGREE_LINEAR. Untuk informasi selengkapnya, lihat D3DDEGREETYPE.

D3DRS_NORMALDEGREE

Tingkat interpolasi normal N-patch. Nilai dapat D3DDEGREE_LINEAR (default) atau D3DDEGREE_QUADRATIC. Untuk informasi selengkapnya, lihat D3DDEGREETYPE.

D3DRS_SCISSORTESTENABLE

TRUE untuk mengaktifkan pengujian gunting dan FALSE untuk menonaktifkannya. Nilai defaultnya adalah FALSE.

D3DRS_SLOPESCALEDEPTHBIAS

Digunakan untuk menentukan berapa banyak bias yang dapat diterapkan pada primitif co-planar untuk mengurangi z-fighting. Nilai default adalah 0.

bias = (maks * D3DRS_SLOPESCALEDEPTHBIAS) + D3DRS_DEPTHBIAS.

di mana maks adalah kelopak kedalaman maksimum segitiga yang dirender.

D3DRS_ANTIALIASEDLINEENABLE

TRUE untuk mengaktifkan antialias baris, FALSE untuk menonaktifkan antialias baris. Nilai defaultnya adalah FALSE.

Saat merender ke target render multisample, D3DRS_ANTIALIASEDLINEENABLE diabaikan dan semua baris dirender alias. Gunakan ID3DXLine untuk penyajian baris antialisis dalam target render multisample.

D3DRS_MINTESSELLATIONLEVEL

Tingkat tesselulasi minimum. Nilai defaultnya adalah 1,0f. Lihat Tessellation (Direct3D 9).

D3DRS_MAXTESSELLATIONLEVEL

Tingkat tesselulasi maksimum. Nilai defaultnya adalah 1,0f. Lihat Tessellation (Direct3D 9).

D3DRS_ADAPTIVETESS_X

Jumlah tessellate adaptif, ke arah x. Nilai defaultnya adalah 0,0f. Lihat Tessellation Adaptif.

D3DRS_ADAPTIVETESS_Y

Jumlah tessellate adaptif, ke arah y. Nilai defaultnya adalah 0,0f. Lihat Adaptive_Tessellation.

D3DRS_ADAPTIVETESS_Z

Jumlah tessellate adaptif, ke arah z. Nilai defaultnya adalah 1,0f. Lihat Adaptive_Tessellation.

D3DRS_ADAPTIVETESS_W

Jumlah tessellate adaptif, ke arah w. Nilai defaultnya adalah 0,0f. Lihat Adaptive_Tessellation.

D3DRS_ENABLEADAPTIVETESSELLATION

TRUE untuk mengaktifkan tessellation adaptif, FALSE untuk menonaktifkannya. Nilai defaultnya adalah FALSE. Lihat Adaptive_Tessellation.

D3DRS_TWOSIDEDSTENCILMODE

TRUE memungkinkan stensil dua sisi, FALSE menonaktifkannya. Nilai defaultnya adalah FALSE. Aplikasi harus mengatur D3DRS_CULLMODE ke D3DCULL_NONE untuk mengaktifkan mode stensil dua sisi. Jika urutan berliku segitiga searah jarum jam, operasi D3DRS_STENCIL* akan digunakan. Jika urutan berliku berlawanan arah jaga, operasi D3DRS_CCW_STENCIL* akan digunakan.

Untuk melihat apakah stensil dua sisi didukung, periksa anggota StencilCaps dari D3DCAPS9 untuk D3DSTENCILCAPS_TWOSIDED. Lihat juga D3DSTENCILCAPS.

D3DRS_CCW_STENCILFAIL

Operasi stensil untuk dilakukan jika pengujian stensil CCW gagal. Nilai berasal dari jenis enumerasi D3DSTENCILOP. Nilai defaultnya adalah D3DSTENCILOP_KEEP.

D3DRS_CCW_STENCILZFAIL

Operasi stensil untuk dilakukan jika pengujian stensil CCW lulus dan z-test gagal. Nilai berasal dari jenis enumerasi D3DSTENCILOP. Nilai defaultnya adalah D3DSTENCILOP_KEEP.

D3DRS_CCW_STENCILPASS

Operasi stensil untuk dilakukan jika stensil CCW dan tes z lulus. Nilai berasal dari jenis enumerasi D3DSTENCILOP. Nilai defaultnya adalah D3DSTENCILOP_KEEP.

D3DRS_CCW_STENCILFUNC

Fungsi perbandingan. Uji stensil CCW lulus jika fungsi stensil (ref &mask) (stensil & masker)) ADALAH TRUE. Nilai berasal dari jenis enumerasi D3DCMPFUNC. Nilai defaultnya adalah D3DCMP_ALWAYS.

D3DRS_COLORWRITEENABLE1

Nilai ColorWriteEnable tambahan untuk perangkat. Lihat D3DRS_COLORWRITEENABLE. Fungsionalitas ini tersedia jika bit kemampuan D3DPMISCCAPS_INDEPENDENTWRITEMASKS diatur dalam anggota PrimitiveMiscCaps dari struktur D3DCAPS9 untuk perangkat. Nilai defaultnya adalah 0x0000000f.

D3DRS_COLORWRITEENABLE2

Nilai ColorWriteEnable tambahan untuk perangkat. Lihat D3DRS_COLORWRITEENABLE. Fungsionalitas ini tersedia jika bit kemampuan D3DPMISCCAPS_INDEPENDENTWRITEMASKS diatur dalam anggota PrimitiveMiscCaps dari struktur D3DCAPS9 untuk perangkat. Nilai defaultnya adalah 0x0000000f.

D3DRS_COLORWRITEENABLE3

Nilai ColorWriteEnable tambahan untuk perangkat. Lihat D3DRS_COLORWRITEENABLE. Fungsionalitas ini tersedia jika bit kemampuan D3DPMISCCAPS_INDEPENDENTWRITEMASKS diatur dalam anggota PrimitiveMiscCaps dari struktur D3DCAPS9 untuk perangkat. Nilai defaultnya adalah 0x0000000f.

D3DRS_BLENDFACTOR

D3DCOLOR digunakan untuk faktor campuran konstan selama blending alfa. Fungsionalitas ini tersedia jika bit kemampuan D3DPBLENDCAPS_BLENDFACTOR diatur dalam anggota SrcBlendCaps dari D3DCAPS9 atau anggota DestBlendCaps dari D3DCAPS9. Lihat D3DRENDERSTATETYPE. Nilai defaultnya adalah 0xffffffff.

D3DRS_SRGBWRITEENABLE

Aktifkan penulisan target render untuk dikoreksi gamma ke sRGB. Format harus mengekspos D3DUSAGE_SRGBWRITE. Nilai default adalah 0.

D3DRS_DEPTHBIAS

Nilai floating-point yang digunakan untuk perbandingan nilai kedalaman. Lihat Bias Kedalaman (Direct3D 9). Nilai default adalah 0.

D3DRS_WRAP8

Lihat D3DRS_WRAP0.

D3DRS_WRAP9

Lihat D3DRS_WRAP0.

D3DRS_WRAP10

Lihat D3DRS_WRAP0.

D3DRS_WRAP11

Lihat D3DRS_WRAP0.

D3DRS_WRAP12

Lihat D3DRS_WRAP0.

D3DRS_WRAP13

Lihat D3DRS_WRAP0.

D3DRS_WRAP14

Lihat D3DRS_WRAP0.

D3DRS_WRAP15

Lihat D3DRS_WRAP0.

D3DRS_SEPARATEALPHABLENDENABLE

TRUE memungkinkan mode blend terpisah untuk saluran alfa. Nilai defaultnya adalah FALSE.

Saat diatur ke FALSE, faktor dan operasi blending target render yang diterapkan ke alfa dipaksa sama dengan yang didefinisikan untuk warna. Mode ini secara efektif di-hardwired ke FALSE pada implementasi yang tidak mengatur batas D3DPMISCCAPS_SEPARATEALPHABLEND. Lihat D3DPMISCCAPS.

Jenis blending alfa terpisah ditentukan oleh status render D3DRS_SRCBLENDALPHA dan D3DRS_DESTBLENDALPHA.

D3DRS_SRCBLENDALPHA

Salah satu anggota jenis enumerasi D3DBLEND. Nilai ini diabaikan kecuali D3DRS_SEPARATEALPHABLENDENABLE TRUE. Nilai defaultnya adalah D3DBLEND_ONE.

D3DRS_DESTBLENDALPHA

Salah satu anggota jenis enumerasi D3DBLEND. Nilai ini diabaikan kecuali D3DRS_SEPARATEALPHABLENDENABLE TRUE. Nilai defaultnya adalah D3DBLEND_ZERO.

D3DRS_BLENDOPALPHA

Nilai yang digunakan untuk memilih operasi aritmatika yang diterapkan untuk memisahkan campuran alfa saat status render, D3DRS_SEPARATEALPHABLENDENABLE, diatur ke TRUE.

Nilai yang valid ditentukan oleh jenis enumerasi D3DBLENDOP. Nilai defaultnya adalah D3DBLENDOP_ADD.

Jika kemampuan perangkat D3DPMISCCAPS_BLENDOP tidak didukung, maka D3DBLENDOP_ADD dilakukan. Lihat D3DPMISCCAPS.

D3DRS_FORCE_DWORD

Memaksa enumerasi ini untuk mengkompilasi ke ukuran 32 bit. Tanpa nilai ini, beberapa kompilator akan memungkinkan enumerasi ini untuk dikompilasi ke ukuran selain 32 bit. Nilai ini tidak digunakan.

Keterangan

Status render Sampel tekstur
ps_1_1 ke ps_1_3 4 sampel tekstur

 

Direct3D mendefinisikan konstanta D3DRENDERSTATE_WRAPBIAS sebagai kenyamanan bagi aplikasi untuk mengaktifkan atau menonaktifkan pembungkusan tekstur, berdasarkan bilangan bulat berbasis nol dari kumpulan koordinat tekstur (daripada secara eksplisit menggunakan salah satu nilai status D3DRS_WRAP n). Tambahkan nilai D3DRENDERSTATE_WRAPBIAS ke indeks berbasis nol dari kumpulan koordinat tekstur untuk menghitung nilai n D3DRS_WRAP yang sesuai dengan indeks tersebut, seperti yang ditunjukkan dalam contoh berikut.

// Enable U/V wrapping for textures that use the texture 
// coordinate set at the index within the dwIndex variable
    
HRESULT hr = pd3dDevice->SetRenderState(
dwIndex + D3DRENDERSTATE_WRAPBIAS,  
D3DWRAPCOORD_0 | D3DWRAPCOORD_1);
     
// If dwIndex is 3, the value that results from 
// the addition equals D3DRS_WRAP3 (131)

Persyaratan

Persyaratan Value
Header
D3D9Types.h

Baca juga

Enumerasi Direct3D

IDirect3DDevice9::GetRenderState

IDirect3DDevice9::SetRenderState