在固定函数着色器管道上设置设备状态
本部分提供使用固定函数和可编程着色器管道设置设备状态之间的主要差异。
下面是只能为固定函数管道设置的设备状态:
- 固定函数转换和照明: IDirect3DDevice9::SetRenderState 和 D3DRS_SHADEMODE, D3DRS_SPECULARENABLE、D3DRS_LIGHTING、D3DRS_AMBIENT、D3DRS_COLORVERTEX、D3DRS_LOCALVIEWER、D3DRS_NORMALIZENORMALS、D3DRS_DIFFUSEMATERIALSOURCE、D3DRS_SPECULARMATERIALSOURCE、D3DRS_AMBIENTMATERIALSOURCE、D3DRS_EMISSIVEMATERIALSOURCE、D3DRS_VERTEXBLEND、D3DRS_INDEXEDVERTEXBLENDENABLE、D3DRS_TWEENFACTOR、 IDirect3DDevice9:::LightEnable、 IDirect3DDevice9::MultiplyTransform、 IDirect3DDevice9::SetFVF、 IDirect3DDevice9::SetLight、 IDirect3DDevice9::SetMaterial、 IDirect3DDevice9::SetTransform
- 固定函数像素着色器: 具有 D3DRS_TEXTUREFACTOR 的 IDirect3DDevice9::SetRenderState 、 IDirect3DDevice9::SetTextureStageState
- Fog: IDirect3DDevice9::SetRenderState with D3DRS_FOGENABLE、D3DRS_FOGCOLOR、D3DRS_FOGTABLEMODE、D3DRS_FOGSTART、D3DRS_FOGEND、D3DRS_FOGDENSITY、D3DRS_RANGEFOGENABLE、D3DRS_FOGVERTEXMODE
下面是可以使用 IDirect3DDevice9::SetRenderState 为固定函数和可编程着色器管道设置的设备呈现状态:
- 呈现目标状态:D3DRS_COLORWRITEENABLE、D3DRS_COLORWRITEENABLE1、D3DRS_COLORWRITEENABLE2、D3DRS_COLORWRITEENABLE3、D3DRS_SRGBWRITEENABLE
- 深度状态:D3DRS_ZENABLE、D3DRS_ZWRITEENABLE、D3DRS_ZFUNC、D3DRS_SLOPESCALEDEPTHBIAS、D3DRS_DEPTHBIAS
- 模具状态:D3DRS_STENCILENABLE、D3DRS_STENCILFAIL、D3DRS_STENCILZFAIL、D3DRS_STENCILPASS、D3DRS_STENCILFUNC、D3DRS_STENCILREF、D3DRS_STENCILMASK、D3DRS_STENCILWRITEMASK、D3DRS_TWOSIDEDSTENCILMODE、D3DRS_CCW_STENCILFAIL、D3DRS_CCW_STENCILZFAIL、D3DRS_CCW_STENCILPASS、D3DRS_CCW_STENCILFUNC
- Alpha 混合:D3DRS_SRCBLEND、D3DRS_DESTBLEND、D3DRS_BLENDOP、D3DRS_BLENDFACTOR、D3DRS_SEPARATEALPHABLENDENABLE、D3DRS_SRCBLENDALPHA、D3DRS_DESTBLENDALPHA、D3DRS_BLENDOPALPHA
- Alpha 测试:D3DRS_ALPHATESTENABLE、D3DRS_ALPHAREF、D3DRS_ALPHAFUNC
- 光栅器状态:D3DRS_FILLMODE、D3DRS_LASTPIXEL、D3DRS_DITHERENABLE (16 位图面)
- 剔除: D3DRS_CULLMODE
- 剪辑:D3DRS_CLIPPING、D3DRS_CLIPPLANEENABLE
- 剪刀:D3DRS_SCISSORTESTENABLE
- 纹理采样器:D3DRS_WRAP0、D3DRS_WRAP1、D3DRS_WRAP2、D3DRS_WRAP3、D3DRS_WRAP4、D3DRS_WRAP5、D3DRS_WRAP6、D3DRS_WRAP7、D3DRS_WRAP8、D3DRS_WRAP9、D3DRS_WRAP10、D3DRS_WRAP11、D3DRS_WRAP12、D3DRS_WRAP13、D3DRS_WRAP14、D3DRS_WRAP15
- 抗锯齿:D3DRS_MULTISAMPLEANTIALIAS、D3DRS_MULTISAMPLEMASK、D3DRS_ANTIALIASEDLINEENABLE
- 点子画面:D3DRS_POINTSIZE、D3DRS_POINTSIZE_MIN、D3DRS_POINTSPRITEENABLE、D3DRS_POINTSIZE_MAXD3DRS_POINTSCALEENABLE、D3DRS_POINTSCALE_A、D3DRS_POINTSCALE_B、D3DRS_POINTSCALE_C
- N 补丁:D3DRS_PATCHEDGESTYLE、D3DRS_POSITIONDEGREE、D3DRS_NORMALDEGREE、D3DRS_MINTESSELLATIONLEVEL、D3DRS_MAXTESSELLATIONLEVEL、D3DRS_ADAPTIVETESS_X、D3DRS_ADAPTIVETESS_Y、D3DRS_ADAPTIVETESS_Z、D3DRS_ADAPTIVETESS_W、D3DRS_ENABLEADAPTIVETESSELLATION
相关主题