Bagikan melalui


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.

Catatan Jika Anda ingin merender dengan ForcedSampleCount yang diatur ke 1 atau lebih tinggi, Anda harus mengikuti panduan berikut:
  • 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.
Jika tidak, perilaku penyajian tidak ditentukan.

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
 
Catatan Untuk tingkat fitur 9.1, 9.2, 9.3, dan 10.0, jika Anda mengatur MultisampleEnable ke FALSE, runtime merender semua titik, garis, dan segitiga tanpa anti-alias bahkan untuk target render dengan jumlah sampel yang lebih besar dari 1. Untuk tingkat fitur 10.1 dan yang lebih tinggi, pengaturan MultisampleEnable tidak berpengaruh pada titik dan segitiga sehubungan dengan MSAA dan hanya memengaruhi pemilihan algoritma penyajian baris seperti yang ditunjukkan dalam tabel ini:
 
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

Lihat juga

CD3DX12_RASTERIZER_DESC

Rasterisasi Konservatif

Struktur Inti

Tampilan Yang Diurutkan Rasterizer