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.