Bagikan melalui


METODE ID3D11DeviceContext::OMSetBlendState (d3d11.h)

Atur status campuran tahap output-merger.

Sintaks

void OMSetBlendState(
  [in, optional] ID3D11BlendState *pBlendState,
  [in, optional] const FLOAT [4]  BlendFactor,
  [in]           UINT             SampleMask
);

Parameter

[in, optional] pBlendState

Jenis: ID3D11BlendState*

Penunjuk ke antarmuka status campuran (lihat ID3D11BlendState). Teruskan NULL untuk status campuran default. Untuk informasi selengkapnya tentang status campuran default, lihat Keterangan.

[in, optional] BlendFactor

Jenis: const FLOAT[4]

Array faktor campuran, satu untuk setiap komponen RGBA. Faktor campuran memodulasi nilai untuk shader piksel, merender target, atau keduanya. Jika Anda membuat objek blend-state dengan D3D11_BLEND_BLEND_FACTOR atau D3D11_BLEND_INV_BLEND_FACTOR, tahap blending menggunakan array non-NULL faktor campuran. Jika Anda tidak membuat objek blend-state dengan D3D11_BLEND_BLEND_FACTOR atau D3D11_BLEND_INV_BLEND_FACTOR, tahap perpaduan tidak menggunakan array faktor campuran non-NULL; runtime menyimpan faktor campuran, dan Anda nantinya dapat memanggil ID3D11DeviceContext::OMGetBlendState untuk mengambil faktor campuran. Jika Anda melewati NULL, runtime menggunakan atau menyimpan faktor campuran yang sama dengan { 1, 1, 1, 1 }.

[in] SampleMask

Jenis: UINT

Cakupan sampel 32-bit. Nilai defaultnya adalah 0xffffffff. Lihat komentar.

Menampilkan nilai

Tidak ada

Keterangan

Status campuran digunakan oleh tahap output-merger untuk menentukan cara menyatukan dua nilai piksel RGB dan dua nilai alfa. Dua nilai piksel RGB dan dua nilai alfa adalah nilai piksel RGB dan nilai alfa yang dihasilkan oleh shader piksel dan nilai piksel RGB dan nilai alfa yang sudah ada di target render output. Opsi campuran mengontrol sumber data yang digunakan tahap penpaduan untuk memodulasi nilai untuk shader piksel, merender target, atau keduanya. Operasi campuran mengontrol bagaimana tahap perpaduan secara matematis menggabungkan nilai modulasi ini.

Untuk membuat antarmuka blend-state, panggil ID3D11Device::CreateBlendState.

Meneruskan NULL untuk antarmuka status campuran menunjukkan ke runtime untuk mengatur status penpaduan default. Tabel berikut menunjukkan parameter penpaduan default.

Provinsi Nilai Default
AlphaToCoverageEnable FALSE
IndependentBlendEnable FALSE
RenderTarget[0]. BlendEnable FALSE
RenderTarget[0]. SrcBlend D3D11_BLEND_ONE
RenderTarget[0]. DestBlend D3D11_BLEND_ZERO
RenderTarget[0]. BlendOp D3D11_BLEND_OP_ADD
RenderTarget[0]. SrcBlendAlpha D3D11_BLEND_ONE
RenderTarget[0]. DestBlendAlpha D3D11_BLEND_ZERO
RenderTarget[0]. BlendOpAlpha D3D11_BLEND_OP_ADD
RenderTarget[0]. RenderTargetWriteMask D3D11_COLOR_WRITE_ENABLE_ALL
 

Masker sampel menentukan sampel mana yang diperbarui di semua target render aktif. Pemetaan bit dalam masker sampel ke sampel dalam target render multisample adalah tanggung jawab aplikasi individu. Masker sampel selalu diterapkan; tidak bergantung pada apakah multisampling diaktifkan, dan tidak bergantung pada apakah aplikasi menggunakan target render multisample.

Metode ini akan menyimpan referensi ke antarmuka yang diteruskan. Ini berbeda dari perilaku status perangkat di Direct3D 10.

Persyaratan

Persyaratan Nilai
Target Platform Windows
Header d3d11.h
Pustaka D3D11.lib

Lihat juga

ID3D11DeviceContext