D3D10_RASTERIZER_DESC 结构 (d3d10.h)

描述光栅器状态。

语法

typedef struct D3D10_RASTERIZER_DESC {
  D3D10_FILL_MODE FillMode;
  D3D10_CULL_MODE CullMode;
  BOOL            FrontCounterClockwise;
  INT             DepthBias;
  FLOAT           DepthBiasClamp;
  FLOAT           SlopeScaledDepthBias;
  BOOL            DepthClipEnable;
  BOOL            ScissorEnable;
  BOOL            MultisampleEnable;
  BOOL            AntialiasedLineEnable;
} D3D10_RASTERIZER_DESC;

成员

FillMode

类型: D3D10_FILL_MODE

D3D10_FILL_MODE枚举类型的成员,用于确定呈现时要使用的填充模式。 默认值为 D3D10_FILL_SOLID

CullMode

类型: D3D10_CULL_MODE

D3D10_CULL_MODE枚举类型的成员,指示是否绘制面向指定方向的三角形。 默认值为 D3D10_CULL_BACK

FrontCounterClockwise

类型: BOOL

确定三角形是正面还是向后。 如果此参数为 TRUE,则如果三角形的顶点在呈现器目标上逆时针,则被视为正面;如果三角形顺时针,则被视为朝后。 如果此参数为 FALSE,则相反为 true。 默认值为 FALSE

DepthBias

类型: INT

指定添加到给定像素的深度值。 默认值为 0。 有关深度偏差的信息,请参阅 深度偏差

DepthBiasClamp

类型: FLOAT

指定像素的最大深度偏差。 默认值为 0.0f。 有关深度偏差的信息,请参阅 深度偏差

SlopeScaledDepthBias

类型: FLOAT

指定给定像素斜率上的标量。 默认值为 0.0f。 有关深度偏差的信息,请参阅 深度偏差

DepthClipEnable

类型: BOOL

根据距离启用或禁用剪裁。 默认值为 TRUE。

硬件始终执行光栅化坐标的 x 和 y 剪裁。 当 DepthClipEnable 设置为默认值时,硬件还会将 z 值剪裁 (也就是说,硬件) 执行以下算法的最后一步。


0 < w
-w <= x <= w (or arbitrarily wider range if implementation uses a guard band to reduce clipping burden)
-w <= y <= w (or arbitrarily wider range if implementation uses a guard band to reduce clipping burden)
0 <= z <= w

DepthClipEnable 设置为 FALSE 时,硬件会跳过 z 剪辑 (,即前面的算法中的最后一步) 。 但是,硬件仍执行“0 < w”剪辑。 禁用 z 剪裁时,可能会导致像素级别的深度排序不正确。 但是,禁用 z 剪辑时,模具阴影实现将得到简化。 换句话说,可以避免对超出后退剪裁平面的几何图形进行复杂的特殊情况处理。

ScissorEnable

类型: BOOL

启用或禁用剪刀矩形剔除。 活动剪刀矩形之外的所有像素都会被剔除。 默认值为 FALSE。 有关详细信息,请参阅 设置剪刀矩形

MultisampleEnable

类型: BOOL

指定是在多采样抗锯齿 (MSAA) 呈现目标上使用四边形还是 alpha 线抗锯齿算法。 默认值为 FALSE。 设置为 TRUE 以使用四边线抗锯齿算法,设置为 FALSE 以使用 alpha 行抗锯齿算法。 有关此成员的详细信息,请参阅备注。

AntialiasedLineEnable

类型: BOOL

指定是否启用行抗锯齿;仅在启用 alpha 混合、绘制线条且 MultisampleEnable 成员为 FALSE 时适用。 默认值为 FALSE。 有关此成员的详细信息,请参阅备注。

注解

光栅器状态定义 光栅器阶段的行为。 若要创建光栅器状态对象,请调用 ID3D10Device::CreateRasterizerState。 若要设置光栅器状态,请调用 ID3D10Device::RSSetState

注意 对于 功能级别 9.1、9.2、9.3 和 10.0,如果将 MultisampleEnable 设置为 FALSE,则运行时将呈现所有点、线和三角形,即使样本计数大于 1 的呈现目标也是如此。 对于功能级别 10.1, MultisampleEnable 的设置对 MSAA 的点和三角形没有影响,并且仅影响线呈现算法的选择,如下表所示:
 
线条呈现算法 MultisampleEnable AntialiasedLineEnable
锯齿 FALSE FALSE
Alpha 抗锯齿 FALSE TRUE
四边形 TRUE FALSE
四边形 TRUE TRUE
 

MultisampleEnableAntialiasedLineEnable 成员的设置仅适用于多重采样抗锯齿 (MSAA) 呈现目标 (即样本计数大于 1) 的呈现目标。 由于 功能级别 行为的差异,并且只要不执行任何线条绘制或不介意线条呈现为四边形,建议始终在 MSAA 呈现目标上呈现时将 MultisampleEnable 设置为 TRUE

要求

   
标头 d3d10.h

另请参阅

核心结构