Partilhar via


Salvando o estado do pixel com um StateBlock (Direct3D 9)

Um bloco de estado pode ser usado para capturar apenas o estado de pixel (consulte Estado bloqueia salvar e restaurar estado (Direct3D 9)). O estado a seguir é o estado de pixel:

Para capturar o estado do pixel com um bloco de estado, especifique D3DSBT_PIXELSTATE ao chamar IDirect3DDevice9::CreateStateBlock.

Pipeline de Pixel: Estado de Renderização

Os estados de renderização do dispositivo afetam o comportamento de quase todas as partes do pipeline. Os estados de renderização são definidos chamando IDirect3DDevice9::SetRenderState.

A tabela a seguir inclui todos os estados de renderização que configuram o estado de pixel:

Renderizar estados Valor padrão
D3DRS_ZENABLE D3DZB_FALSE
D3DRS_SPECULARENABLE FALSE
D3DFILLMODE D3DFILL_SOLID
D3DSHADEMODE D3DSHADE_GOURAUD
D3DRS_ZWRITEENABLE TRUE
D3DRS_ALPHATESTENABLE FALSE
D3DRS_LASTPIXEL TRUE
D3DRS_SRCBLEND D3DBLEND_ONE
D3DRS_DESTBLEND D3DBLEND_ZERO
D3DRS_ZFUNC D3DCMP_LESSEQUAL
D3DRS_ALPHAREF 0
D3DRS_ALPHAFUNC D3DCMP_ALWAYS
D3DRS_DITHERENABLE FALSE
D3DRS_FOGSTART 0
D3DRS_FOGEND 1
D3DRS_FOGDENSITY 1
D3DRS_ALPHABLENDENABLE FALSE
D3DRS_DEPTHBIAS 0
D3DRS_STENCILENABLE FALSE
D3DRS_STENCILFAIL D3DSTENCILOP_KEEP
D3DRS_STENCILZFAIL D3DSTENCILOP_KEEP
D3DRS_STENCILPASS D3DSTENCILOP_KEEP
D3DRS_STENCILFUNC D3DCMP_ALWAYS
D3DRS_STENCILREF 0
D3DRS_STENCILMASK 0xffffffff
D3DRS_STENCILWRITEMASK 0xffffffff
D3DRS_TEXTUREFACTOR 0xffffffff
D3DRS_WRAP0 0
D3DRS_WRAP1 0
D3DRS_WRAP2 0
D3DRS_WRAP3 0
D3DRS_WRAP4 0
D3DRS_WRAP5 0
D3DRS_WRAP6 0
D3DRS_WRAP7 0
D3DRS_WRAP8 0
D3DRS_WRAP9 0
D3DRS_WRAP10 0
D3DRS_WRAP11 0
D3DRS_WRAP12 0
D3DRS_WRAP13 0
D3DRS_WRAP14 0
D3DRS_WRAP15 0
D3DRS_LOCALVIEWER TRUE
D3DRS_EMISSIVEMATERIALSOURCE D3DMCS_MATERIAL
D3DRS_AMBIENTMATERIALSOURCE D3DMCS_MATERIAL
D3DRS_DIFFUSEMATERIALSOURCE D3DMCS_COLOR1
D3DRS_SPECULARMATERIALSOURCE D3DMCS_COLOR2
D3DRS_COLORWRITEENABLE 0x0000000f
D3DBLENDOP D3DBLENDOP_ADD
D3DRS_SCISSORTESTENABLE FALSE
D3DRS_SLOPESCALEDEPTHBIAS 0
D3DRS_ANTIALIASEDLINEENABLE FALSE
D3DRS_TWOSIDEDSTENCILMODE FALSE
D3DRS_CCW_STENCILFAIL D3DSTENCILOP_KEEP
D3DRS_CCW_STENCILZFAIL D3DSTENCILOP_KEEP
D3DRS_CCW_STENCILPASS D3DSTENCILOP_KEEP
D3DRS_CCW_STENCILFUNC D3DCMP_ALWAYS
D3DRS_COLORWRITEENABLE1 0x0000000f
D3DRS_COLORWRITEENABLE2 0x0000000f
D3DRS_COLORWRITEENABLE3 0x0000000f
D3DRS_BLENDFACTOR 0xffffffff
D3DRS_SRGBWRITEENABLE 0
D3DRS_SEPARATEALPHABLENDENABLE FALSE
D3DRS_SRCBLENDALPHA D3DBLEND_ONE
D3DRS_DESTBLENDALPHA D3DBLEND_ZERO
D3DRS_BLENDOPALPHA D3DBLENDOP_ADD

 

Pipeline de Pixel: estado do sampler

Os estados de amostragem controlam tópicos relacionados à amostragem, como filtragem, blocos e modos de endereço de coordenadas de textura. Use IDirect3DDevice9::SetSamplerState para configurar o estado do sampler (incluindo o usado na unidade de mosaico para amostrar mapas de deslocamento). Os estados do sampler foram renomeados com um prefixo "D3DSAMP_" para habilitar a detecção de erros de tempo de compilação durante a portabilidade do DirectX 8.

A tabela a seguir inclui todos os estados do sampler que configuram o estado de pixel:

Estados do sampler Valor padrão
D3DSAMP_ADDRESSU D3DTADDRESS_WRAP
D3DSAMP_ADDRESSV D3DTADDRESS_WRAP
D3DSAMP_ADDRESSW D3DTADDRESS_WRAP
D3DSAMP_BORDERCOLOR 0x00000000
D3DSAMP_MAGFILTER D3DTEXF_POINT
D3DSAMP_MINFILTER D3DTEXF_POINT
D3DSAMP_MIPFILTER D3DTEXF_NONE
D3DSAMP_MIPMAPLODBIAS 0
D3DSAMP_MAXMIPLEVEL 0
D3DSAMP_MAXANISOTROPY 1
D3DSAMP_SRGBTEXTURE 0
D3DSAMP_ELEMENTINDEX 0

 

Pipeline de Pixel: estado de textura

Os estados de textura controlam as operações de mesclagem de textura do liquidificador de várias texturas. Use IDirect3DDevice9::SetTextureStageState para configurar estados de estágio de textura. Use IDirect3DDevice9::SetTexture para associar uma textura a um estágio de amostragem.

A tabela a seguir inclui todos os estados de textura que configuram o estado de pixel:

Estados de textura Valor padrão
D3DTSS_COLOROP D3DTOP_DISABLE
D3DTSS_COLORARG1 D3DTA_TEXTURE
D3DTSS_COLORARG2 D3DTA_CURRENT
D3DTSS_ALPHAOP D3DTOP_DISABLE
D3DTSS_ALPHAARG1 D3DTA_TEXTURE
D3DTSS_ALPHAARG2 D3DTA_CURRENT
D3DTSS_BUMPENVMAT00 0
D3DTSS_BUMPENVMAT01 0
D3DTSS_BUMPENVMAT10 0
D3DTSS_BUMPENVMAT11 0
D3DTSS_TEXCOORDINDEX 0
D3DTSS_BUMPENVLSCALE 0
D3DTSS_BUMPENVLOFFSET 0
D3DTSS_TEXTURETRANSFORMFLAGS D3DTTFF_DISABLE
D3DTSS_COLORARG0 D3DTA_CURRENT
D3DTSS_ALPHAARG0 D3DTA_CURRENT
D3DTSS_RESULTARG D3DTA_CURRENT

 

Estado blocos salvar e restaurar estado