Bagikan melalui


Grup status efek (Direct3D 10)

Status efek adalah pasangan nama-nilai dalam bentuk ekspresi.

Status campuran

Status efek Grup
ALPHATOCOVERAGEENABLE, BLENDENABLE, SRCBLEND, DESTBLEND, BLENDOP, SRCBLENDALPHA, DESTBLENDALPHA, BLENDOPALPHA, RENDERTARGETWRITEMASK Anggota D3D10_BLEND_DESC

Kedalaman dan status stensil

Status efek Grup
DEPTHENABLE, DEPTHWRITEMASK, DEPTHFUNC, STENCILENABLE, STENCILREADMASK, STENCILWRITEMASK Anggota D3D10_DEPTH_STENCIL_DESC
FRONTFACESTENCILFAIL, FRONTFACESTENCILZFAIL, FRONTFACESTENCILPASS, FRONTFACESTENCILFUNC, BACKFACESTENCILFAIL, BACKFACESTENCILZFAIL, BACKFACESTENCILPASS, BACKFACESTENCILFUNC Anggota D3D10_DEPTH_STENCILOP_DESC

Status rasterizer

Status efek Grup
FILLMODE D3D10_FILL_MODE
CULLMODE D3D10_CULL_MODE
FRONTCOUNTERCLOCKWISE, DEPTHBIAS, DEPTHBIASCLAMP, SLOPESCALEDDEPTHBIAS, ZCLIPENABLE, SCISSORENABLE, MULTISAMPLEENABLE, ANTIALIASEDLINEENABLE Anggota D3D10_RASTERIZER_DESC

Status sampler

Status efek Grup
Filter, AddressU, AddressV, AddressW, MipLODBias, MaxAnisotropy, ComparisonFunc, BorderColor, MinLOD, MaxLOD Anggota D3D10_SAMPLER_DESC

Lihat Jenis sampler (DirectX HLSL) misalnya.

Status objek efek

Objek efek ini Memetakan ke
RASTERIZERSTATE Objek status Rasterizer State .
DEPTHSTENCILSTATE Objek status Kedalaman dan Stensil .
BLENDSTATE Objek status Status Campuran .
VERTEXSHADER Objek shader vertex yang dikompilasi.
PIXELSHADER Objek shader piksel yang dikompilasi.
GEOMETRYSHADER Objek shader geometri yang dikompilasi.
DS_STENCILREF AB_BLENDFACTOR AB_SAMPLEMASK Anggota D3D10_PASS_DESC.

Menentukan dan menggunakan objek status

Objek status dideklarasikan dalam file FX dalam format berikut. StateObjectType adalah salah satu status yang tercantum di atas, dan MemberName adalah nama setiap anggota yang akan memiliki nilai non-default.

StateObjectType ObjectName {
 MemberName = value;
 ...
 MemberName = value;
};

Misalnya, untuk menyiapkan objek status campuran dengan AlphaToCoverageEnable dan BlendEnable[0] diatur ke FALSE, kode berikut akan digunakan.

BlendState NoBlend {
 AlphaToCoverageEnable = FALSE;
 BlendEnable[0] = FALSE;
};

Objek status diterapkan ke pass teknik menggunakan salah satu fungsi SetStateGroup yang dijelaskan dalam Sintaks Teknik Efek (Direct3D 10). Misalnya, untuk menerapkan objek BlendState yang dijelaskan di atas kode berikut akan digunakan.

SetBlendState( NoBlend, float4( 0.0f, 0.0f, 0.0f, 0.0f ), 0xFFFFFFFF );

Untuk tutorial yang menjelaskan penggunaan status, lihat Manajemen status.