Share via


StateBlock을 사용하여 픽셀 상태 저장(Direct3D 9)

상태 블록을 사용하여 픽셀 상태만 캡처할 수 있습니다( 상태 블록 저장 및 복원 상태 참조(Direct3D 9)). 다음 상태는 픽셀 상태입니다.

상태 블록을 사용하여 픽셀 상태를 캡처하려면 IDirect3DDevice9::CreateStateBlock을 호출할 때 D3DSBT_PIXELSTATE 지정합니다.

픽셀 파이프라인: 렌더링 상태

디바이스 렌더링 상태는 파이프라인의 거의 모든 부분의 동작에 영향을 줍니다. 렌더링 상태는 IDirect3DDevice9::SetRenderState를 호출하여 설정됩니다.

다음 표에는 픽셀 상태를 설정하는 모든 렌더링 상태가 포함되어 있습니다.

렌더링 상태 기본값
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

 

픽셀 파이프라인: 샘플러 상태

샘플러 상태는 필터링, 타일링 및 텍스처 좌표 주소 모드와 같은 샘플링 관련 topics 제어합니다. IDirect3DDevice9::SetSamplerState를 사용하여 샘플러 상태를 설정합니다(테셀레이터 단위에서 샘플 변위 맵에 사용되는 상태 포함). 샘플러 상태는 DirectX 8에서 포팅할 때 컴파일 시간 오류 검색을 사용하도록 "D3DSAMP_" 접두사로 이름이 바뀌었습니다.

다음 표에는 픽셀 상태를 설정하는 모든 샘플러 상태가 포함되어 있습니다.

샘플러 상태 기본값
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

 

픽셀 파이프라인: 텍스처 상태

텍스처 상태는 다중 텍스처 블렌더의 텍스처 혼합 작업을 제어합니다. IDirect3DDevice9::SetTextureStageState를 사용하여 텍스처 스테이지 상태를 설정합니다. IDirect3DDevice9::SetTexture를 사용하여 텍스처를 샘플러 단계와 연결합니다.

다음 표에는 픽셀 상태를 설정하는 모든 텍스처 상태가 포함되어 있습니다.

텍스처 상태 기본값
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

 

상태 블록 저장 및 복원 상태