Menyimpan Status Vertex Dengan StateBlock (Direct3D 9)
Blok status dapat digunakan untuk hanya mengambil status puncak (lihat Status Simpan dan Pulihkan Blok Status (Direct3D 9)). Status berikut adalah status puncak:
- Status render puncak (lihat Alur Vertex: Status Render).
- Status sampler vertex (lihat Vertex Pipeline: Sampler State).
- Status tekstur puncak (lihat Alur Vertex: Status Tekstur).
- Segmen mode NPatch dari IDirect3DDevice9::SetNPatchMode.
- Setiap lampu dari IDirect3DDevice9::SetLight, serta apakah lampu diaktifkan dengan IDirect3DDevice9::LightEnable atau tidak.
- Shader vertex saat ini dan masing-masing konstanta shader vertex.
- Untuk setiap aliran vertex, simpan nilai pembagi dari IDirect3DDevice9::SetStreamSourceFreq.
- Deklarasi puncak saat ini.
Untuk mengambil status puncak dengan blok status, tentukan D3DSBT_VERTEXSTATE saat memanggil IDirect3DDevice9::CreateStateBlock.
Alur Vertex: Status Render
Status render perangkat memengaruhi perilaku hampir setiap bagian dari alur. Status render diatur dengan memanggil IDirect3DDevice9::SetRenderState.
Tabel berikut ini menyertakan semua status render yang menyiapkan status puncak:
Status Render | Nilai Default |
---|---|
D3DRS_CULLMODE | D3DCULL_CCW |
D3DRS_FOGCOLOR | 0 |
D3DRS_FOGTABLEMODE | D3DFOG_NONE |
D3DRS_FOGSTART | 0 |
D3DRS_FOGEND | 1 |
D3DRS_FOGDENSITY | 1 |
D3DRS_RANGEFOGENABLE | FALSE |
D3DRS_AMBIENT | 0 |
D3DRS_COLORVERTEX | TRUE |
D3DRS_FOGVERTEXMODE | D3DFOG_NONE |
D3DRS_CLIPPING | TRUE |
D3DRS_LIGHTING | TRUE |
D3DRS_LOCALVIEWER | TRUE |
D3DRS_EMISSIVEMATERIALSOURCE | D3DMCS_MATERIAL |
D3DRS_AMBIENTMATERIALSOURCE | D3DMCS_MATERIAL |
D3DRS_DIFFUSEMATERIALSOURCE | D3DMCS_COLOR1 |
D3DRS_SPECULARMATERIALSOURCE | D3DMCS_COLOR2 |
D3DRS_VERTEXBLEND | D3DVBF_DISABLE |
D3DRS_CLIPPLANEENABLE | 0 |
D3DRS_POINTSIZE | Dependen driver |
D3DRS_POINTSIZE_MIN | 1 |
D3DRS_POINTSPRITEENABLE | FALSE |
D3DRS_POINTSCALEENABLE | FALSE |
D3DRS_POINTSCALE_A | 1 |
D3DRS_POINTSCALE_B | 0 |
D3DRS_POINTSCALE_C | 0 |
D3DRS_MULTISAMPLEANTIALIAS | TRUE |
D3DRS_MULTISAMPLEMASK | 0xffffffff |
D3DRS_PATCHEDGESTYLE | D3DPATCHEDGE_DISCRETE |
D3DRS_POINTSIZE_MAX | 1 |
D3DRS_INDEXEDVERTEXBLENDENABLE | FALSE |
D3DRS_TWEENFACTOR | 0 |
D3DRS_POSITIONDEGREE | D3DDEGREE_CUBIC |
D3DRS_NORMALDEGREE | D3DDEGREE_LINEAR |
D3DRS_MINTESSELLATIONLEVEL | 1 |
D3DRS_MAXTESSELLATIONLEVEL | 1 |
D3DRS_ADAPTIVETESS_X | 0 |
D3DRS_ADAPTIVETESS_Y | 0 |
D3DRS_ADAPTIVETESS_Z | 1 |
D3DRS_ADAPTIVETESS_W | 0 |
D3DRS_ENABLEADAPTIVETESSELLATION"/> | FALSE |
Alur Vertex: Status Sampler
Status sampler mengontrol pengambilan sampel topik terkait seperti pemfilteran, pemetaan, dan mode alamat koordinat tekstur. Gunakan IDirect3DDevice9::SetSamplerState untuk menyiapkan status sampler (termasuk yang digunakan di unit tessellator untuk mengambil sampel peta perpindahan). Status sampler telah diganti namanya dengan awalan "D3DSAMP_" untuk mengaktifkan deteksi kesalahan waktu kompilasi saat porting dari DirectX 8.
Tabel berikut ini menyertakan semua status sampler yang menyiapkan status puncak:
Status Sampler | Nilai Default |
---|---|
D3DSAMP_DMAPOFFSET | 256 |
Alur Vertex: Status Tekstur
Status tekstur mengontrol operasi perpaduan tekstur dari blender multi-tekstur. Gunakan IDirect3DDevice9::SetTextureStageState untuk menyiapkan status tekstur. Gunakan IDirect3DDevice9::SetTexture untuk mengaitkan tekstur dengan tahap sampler.
Tabel berikut ini menyertakan semua status tekstur yang menyiapkan status puncak:
Status Tekstur | Nilai Default |
---|---|
D3DTSS_TEXCOORDINDEX | 0 |
D3DTSS_TEXTURETRANSFORMFLAGS | D3DTTFF_DISABLE |
D3DTSS_TEXCOORDINDEX adalah status pemrosesan puncak fungsi tetap. Jika shader vertex yang dapat diprogram digunakan, status ini diabaikan.
Topik terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk