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 |
|
Baca juga