在固定函数着色器管道上设置设备状态

本部分提供使用固定函数和可编程着色器管道设置设备状态之间的主要差异。

下面是只能为固定函数管道设置的设备状态:

下面是可以使用 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

高级主题