struktur D3D12_RASTERIZER_DESC (d3d12.h)
Menjelaskan status rasterizer.
Sintaks
typedef struct D3D12_RASTERIZER_DESC {
D3D12_FILL_MODE FillMode;
D3D12_CULL_MODE CullMode;
BOOL FrontCounterClockwise;
INT DepthBias;
FLOAT DepthBiasClamp;
FLOAT SlopeScaledDepthBias;
BOOL DepthClipEnable;
BOOL MultisampleEnable;
BOOL AntialiasedLineEnable;
UINT ForcedSampleCount;
D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster;
} D3D12_RASTERIZER_DESC;
Anggota
FillMode
Nilai D3D12_FILL_MODE-typed yang menentukan mode isian untuk digunakan saat penyajian.
CullMode
Nilai D3D12_CULL_MODE-ketik yang menentukan bahwa segitiga yang menghadap ke arah yang ditentukan tidak digambar.
FrontCounterClockwise
Menentukan apakah segitiga menghadap ke depan atau belakang. Jika anggota ini TRUE, segitiga akan dianggap menghadap ke depan jika simpulnya berlawanan arah jarum jam pada target render dan dianggap menghadap ke belakang jika searah jarum jam. Jika parameter ini FALSE, sebaliknya adalah true.
DepthBias
Nilai kedalaman ditambahkan ke piksel tertentu. Untuk informasi tentang bias kedalaman, lihat Bias Kedalaman.
DepthBiasClamp
Bias kedalaman maksimum piksel. Untuk informasi tentang bias kedalaman, lihat Bias Kedalaman.
SlopeScaledDepthBias
Skalar pada kelereng piksel tertentu. Untuk informasi tentang bias kedalaman, lihat Bias Kedalaman.
DepthClipEnable
Menentukan apakah akan mengaktifkan kliping berdasarkan jarak.
Perangkat keras selalu melakukan kliping x dan y dari koordinat yang dirasterisasi. Ketika DepthClipEnable diatur ke default–TRUE, perangkat keras juga mengklip nilai z (yaitu, perangkat keras melakukan langkah terakhir dari algoritma berikut).
0 < w
-w <= x <= w (or arbitrarily wider range if implementation uses a guard band to reduce clipping burden)
-w <= y <= w (or arbitrarily wider range if implementation uses a guard band to reduce clipping burden)
0 <= z <= w
Saat Anda mengatur DepthClipEnable ke FALSE, perangkat keras melompati kliping z (yaitu, langkah terakhir dalam algoritma sebelumnya). Namun, perangkat keras masih melakukan kliping "0 < w". Saat kliping z dinonaktifkan, pengurutan kedalaman yang tidak tepat pada tingkat piksel dapat mengakibatkan. Namun, ketika kliping z dinonaktifkan, implementasi bayangan stensil disederhanakan. Dengan kata lain, Anda dapat menghindari penanganan kasus khusus yang kompleks untuk geometri yang melampaui bidang kliping belakang.
MultisampleEnable
Menentukan apakah akan menggunakan algoritma anti-aliasing kuadrilateral atau baris alfa pada target render antialiasing multisample (MSAA). Atur ke TRUE untuk menggunakan algoritma anti-aliasing garis kuadrilateral dan ke FALSE untuk menggunakan algoritma anti-aliasing baris alfa. Untuk informasi selengkapnya tentang anggota ini, lihat Komentar.
AntialiasedLineEnable
Menentukan apakah akan mengaktifkan antialias baris; hanya berlaku jika melakukan gambar garis dan MultisampleEnable adalah FALSE. Untuk informasi selengkapnya tentang anggota ini, lihat Komentar.
ForcedSampleCount
Jenis: UINT
Jumlah sampel yang dipaksa saat UAV merender atau melakukan rasterisasi. Nilai yang valid adalah 0, 1, 4, 8, dan opsional 16. 0 menunjukkan bahwa jumlah sampel tidak dipaksakan.
- Jangan mengikat tampilan stensil kedalaman.
- Nonaktifkan pengujian kedalaman.
- Pastikan shader tidak menghasilkan kedalaman output.
- Jika Anda memiliki batas tampilan target render (D3D12_DESCRIPTOR_HEAP_TYPE_RTV) dan ForcedSampleCount lebih besar dari 1, pastikan bahwa setiap target render hanya memiliki satu sampel.
- Jangan mengoperasikan shader pada frekuensi sampel. Oleh karena itu, ID3D12ShaderReflection::IsSampleFrequencyShader mengembalikan FALSE.
ConservativeRaster
Nilai jenis D3D12_CONSERVATIVE_RASTERIZATION_MODE yang mengidentifikasi apakah rasterisasi konservatif aktif atau nonaktif.
Keterangan
D3D12_GRAPHICS_PIPELINE_STATE_DESC berisi struktur status rasterizer.
Status rasterizer mendefinisikan perilaku tahap rasterizer.
Jika Anda tidak menentukan beberapa status rasterizer, runtime Direct3D menggunakan nilai default berikut untuk status rasterizer.
Provinsi | Nilai Default |
---|---|
FillMode | D3D12_FILL_MODE_SOLID |
CullMode | D3D12_CULL_MODE_BACK |
FrontCounterClockwise | FALSE |
DepthBias | 0 |
DepthBiasClamp | 0,0f |
SlopeScaledDepthBias | 0,0f |
DepthClipEnable | TRUE |
MultisampleEnable | FALSE |
AntialiasedLineEnable | FALSE |
ForcedSampleCount | 0 |
ConservativeRaster | D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF |
Algoritma penyajian baris | MultisampleEnable | AntialiasedLineEnable |
---|---|---|
Alias | FALSE | FALSE |
Alpha diantisipasi | FALSE | TRUE |
Segiempat | TRUE | FALSE |
Segiempat | TRUE | TRUE |
Pengaturan anggota MultisampleEnable dan AntialiasedLineEnable hanya berlaku untuk target render multisample antialiasing (MSAA) (yaitu, merender target dengan jumlah sampel lebih besar dari 1). Karena perbedaan perilaku tingkat fitur dan selama Anda tidak melakukan gambar garis apa pun atau tidak keberatan bahwa garis dirender sebagai quadrilaterals, kami sarankan Anda selalu mengatur MultisampleEnable ke TRUE setiap kali Anda merender pada target render MSAA.
Persyaratan
Persyaratan | Nilai |
---|---|
Header | d3d12.h |