Spara vertex-tillstånd med en StateBlock (Direct3D 9)
Ett tillståndsblock kan användas för att endast infånga hörntillstånd (se Tillståndsblock Spara och återställ tillstånd (Direct3D 9)). Följande tillstånd är hörntillstånd:
- Vertexåtergivningstillstånd (se Vertex Pipeline: Render State).
- Vertex-samplerläge (Se Vertex Pipelines: Sampler State).
- Vertex-texturtillstånd (se Vertex-pipeline: Texturtillstånd).
- NPatch-läget segmenterar från IDirect3DDevice9::SetNPatchMode.
- Varje ljus från IDirect3DDevice9::SetLight, samt om ljuset är aktiverat med IDirect3DDevice9::LightEnable.
- Den aktuella hörnskuggningen och var och en av hörnskuggningskonstanterna.
- För varje hörnström lagrar du dividervärdet från IDirect3DDevice9::SetStreamSourceFreq.
- Den aktuella hörndeklarationen.
För att fånga vertex-tillståndet med ett tillståndsblock anger du D3DSBT_VERTEXSTATE när du anropar IDirect3DDevice9::CreateStateBlock.
Vertex-pipeline: Renderingstillstånd
Enhetsåtergivningstillstånd påverkar beteendet för nästan alla delar av pipelinen. Renderingstillstånd anges genom anrop av IDirect3DDevice9::SetRenderState.
Följande tabell innehåller alla återgivningstillstånd som konfigurerar hörntillstånd:
Återgivningstillstånd | Standardvärde |
---|---|
D3DRS_CULLMODE | D3DCULL_CCW |
D3DRS_FOGCOLOR | 0 |
D3DRS_FOGTABLEMODE | D3DFOG_NONE |
D3DRS_FOGSTART | 0 |
D3DRS_FOGEND | 1 |
D3DRS_FOGDENSITY | 1 |
D3DRS_RANGEFOGENABLE | FALSK |
D3DRS_AMBIENT | 0 |
D3DRS_COLORVERTEX | TRUE |
D3DRS_FOGVERTEXMODE | D3DFOG_NONE |
D3DRS_CLIPPING | TRUE |
D3DRS_LIGHTING (belysning) | TRUE |
D3DRS_LOCALVIEWER | TRUE |
D3DRS_EMISSIVEMATERIALSOURCE | D3DMCS_MATERIAL |
D3DRS_AMBIENTMATERIALSOURCE | D3DMCS_MATERIAL |
D3DRS_DIFFUSEMATERIALSOURCE | D3DMCS_COLOR1 |
D3DRS_SPECULARMATERIALSOURCE | D3DMCS_COLOR2 |
D3DRS_VERTEXBLEND | D3DVBF_DISABLE |
D3DRS_CLIPPLANEENABLE | 0 |
D3DRS_POINTSIZE | Förarberoende |
D3DRS_POINTSIZE_MIN | 1 |
D3DRS_POINTSPRITEENABLE | FALSK |
D3DRS_POINTSCALEENABLE | FALSE |
D3DRS_POINTSCALE_A | 1 |
D3DRS_POINTSCALE_B | 0 |
D3DRS_POINTSCALE_C | 0 |
D3DRS_MULTISAMPLEANTIALIAS | SANN |
D3DRS_MULTISAMPLEMASK | 0xffffffff |
D3DRS_PATCHEDGESTYLE | D3DPATCHEDGE_DISCRETE |
D3DRS_POINTSIZE_MAX | 1 |
D3DRS_INDEXEDVERTEXBLENDENABLE | FALSE |
D3DRS_TWEENFACTOR | 0 |
D3DRS_POSITIONDEGREE | D3DDEGREE_CUBIC |
D3DRS_NORMALDEGREE | D3DDEGREE_LINEAR |
D3DRS_MINTESSELLATIONLEVEL | 1 |
D3DRS_MAXTESSELLATIONLEVEL | 1 |
D3DRS_ADAPTIVETESS_X | 0 |
D3DRS_ADAPTIVETESS_Y | 0 |
D3DRS_ADAPTIVETESS_Z | 1 |
D3DRS_ADAPTIVETESS_W | 0 |
D3DRS_ENABLEADAPTIVETESSELLATION"/> | FALSK |
Vertex-pipeline: Sampler-tillstånd
Sampler-tillstånd styr samplingsrelaterade ämnen som filtrering, plattsättning och strukturkoordinatadresslägen. Använd IDirect3DDevice9::SetSamplerState för att konfigurera sampler-tillståndet (inklusive det som används i tessellatorenheten för att prova förskjutningskartor). Sampler-tillstånden har bytt namn med prefixet "D3DSAMP_" för att aktivera kompileringsfelupptäckt vid portning från DirectX 8.
Följande tabell innehåller alla sampler-tillstånd som ställer in vertex-tillstånd:
Sampler-tillstånd | Standardvärde |
---|---|
D3DSAMP_DMAPOFFSET | 256 |
Hörnpipeline: Strukturtillstånd
Texturtillstånd styr blandningsoperationerna i en multiteksturblandare. Använd IDirect3DDevice9::SetTextureStageState för att konfigurera strukturtillstånd. Använd IDirect3DDevice9::SetTexture för att associera en struktur med ett sampler-stadium.
Följande tabell innehåller alla strukturtillstånd som konfigurerar hörntillstånd:
Strukturtillstånd | Standardvärde |
---|---|
D3DTSS_TEXCOORDINDEX | 0 |
D3DTSS_TEXTURETRANSFORMFLAGS | D3DTTFF_DISABLE |
D3DTSS_TEXCOORDINDEX är ett fast funktion vertexbearbetningstillstånd. Om en programmerbar hörnskuggning används ignoreras det här tillståndet.
Relaterade ämnen