在 Direct3D 12 中,D3D12_RASTERIZER_DESC 是一个结构体,用于描述光栅化器(Rasterizer)的属性。光栅化器是图形渲染管线中的一部分,用于将图元(如三角形)转换为屏幕上的像素。

以下是 D3D12_RASTERIZER_DESC 结构的定义:
typedef struct D3D12_RASTERIZER_DESC {
  D3D12_FILL_MODE FillMode;
  D3D12_CULL_MODE CullMode;
  BOOL            FrontCounterClockwise;
  INT             DepthBias;
  FLOAT           DepthBiasClamp;
  FLOAT           SlopeScaledDepthBias;
  BOOL            DepthClipEnable;
  BOOL            MultisampleEnable;
  BOOL            AntialiasedLineEnable;
  UINT            ForcedSampleCount;
  D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster;
} D3D12_RASTERIZER_DESC;

结构体成员的含义如下:

  •  FillMode: 指定如何填充图元的内部。可以是以下值之一:

  - D3D12_FILL_MODE_SOLID: 实心填充。
  - D3D12_FILL_MODE_WIREFRAME: 线框模式。

  •  CullMode: 指定剔除(Cull)的模式。可以是以下值之一:

  - D3D12_CULL_MODE_NONE: 不剔除任何面。
  - D3D12_CULL_MODE_FRONT: 剔除正面。
  - D3D12_CULL_MODE_BACK: 剔除背面。

  •  FrontCounterClockwise: 指定是否使用逆时针顺序为正面。如果为 TRUE,则逆时针顺序为正面;如果为 FALSE,则顺时针顺序为正面。


  •  DepthBias: 深度偏差的整数部分。


  •  DepthBiasClamp: 用于限制深度偏差的允许范围的克服限制。


  •  SlopeScaledDepthBias: 深度斜率缩放偏差。


  •  DepthClipEnable: 指定是否启用深度裁剪。


  •  MultisampleEnable: 指定是否启用多重采样。


  •  AntialiasedLineEnable: 指定是否启用抗锯齿线。


  •  ForcedSampleCount: 强制的样本数。


  •  ConservativeRaster: 保守光栅化模式。可以是以下值之一:

  - D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF: 关闭保守光栅化。
  - D3D12_CONSERVATIVE_RASTERIZATION_MODE_ON: 开启保守光栅化。
  - D3D12_CONSERVATIVE_RASTERIZATION_MODE_FORCE_ON: 强制开启保守光栅化。

使用这个结构体,你可以设置光栅化器的各种属性,以控制图元如何在屏幕上呈现。


转载请注明出处:http://www.pingtaimeng.com/article/detail/25959/Win32 API/D3d12.h/D3D12_RASTERIZER_DESC