Freigeben über


Speichern des Pixelzustands mit einem StateBlock (Direct3D 9)

Ein Zustandsblock kann verwendet werden, um nur den Pixelzustand zu erfassen (siehe Statusblöcke Speichern und Wiederherstellen des Zustands (Direct3D 9)). Der folgende Status ist der Pixelzustand:

Um den Pixelzustand mit einem Zustandsblock zu erfassen, geben Sie beim Aufrufen von IDirect3DDevice9::CreateStateBlock D3DSBT_PIXELSTATE an.

Pixelpipeline: Renderzustand

Geräterenderungszustände wirken sich auf das Verhalten fast aller Teile der Pipeline aus. Renderzustände werden durch Aufrufen von IDirect3DDevice9::SetRenderState festgelegt.

Die folgende Tabelle enthält alle Renderzustände, die den Pixelzustand einrichten:

Renderstatus Standardwert
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

 

Pixelpipeline: Samplerstatus

Samplerzustände steuern Sampling-bezogene Themen wie Filtern, Kacheln und Texturkoordinaten-Adressmodi. Verwenden Sie IDirect3DDevice9::SetSamplerState , um den Samplerzustand einzurichten (einschließlich des Zustands, der in der Tessellatoreinheit zum Beispiel für Verschiebungszuordnungen verwendet wird). Die Samplerzustände wurden mit dem Präfix "D3DSAMP_" umbenannt, um die Fehlererkennung zur Kompilierzeit beim Portieren von DirectX 8 zu ermöglichen.

Die folgende Tabelle enthält alle Samplerzustände, die den Pixelzustand einrichten:

Samplerstatus Standardwert
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

 

Pixelpipeline: Texturzustand

Texturzustände steuern Texturmischungsvorgänge des Multitexturmixers. Verwenden Sie IDirect3DDevice9::SetTextureStageState , um Texturphasenzustände einzurichten. Verwenden Sie IDirect3DDevice9::SetTexture , um einer Samplerphase eine Textur zuzuordnen.

Die folgende Tabelle enthält alle Texturzustände, die den Pixelzustand einrichten:

Texturzustände Standardwert
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

 

Zustandsblöcke Speichern und Wiederherstellen des Zustands