D3D11_RASTERIZER_DESC 结构 (d3d11.h)

描述光栅器状态。

语法

typedef struct D3D11_RASTERIZER_DESC {
  D3D11_FILL_MODE FillMode;
  D3D11_CULL_MODE CullMode;
  BOOL            FrontCounterClockwise;
  INT             DepthBias;
  FLOAT           DepthBiasClamp;
  FLOAT           SlopeScaledDepthBias;
  BOOL            DepthClipEnable;
  BOOL            ScissorEnable;
  BOOL            MultisampleEnable;
  BOOL            AntialiasedLineEnable;
} D3D11_RASTERIZER_DESC;

成员

FillMode

类型: D3D11_FILL_MODE

确定呈现 (看到 D3D11_FILL_MODE) 时使用的填充模式。

CullMode

类型: D3D11_CULL_MODE

指示不绘制面向指定方向的三角形, (查看 D3D11_CULL_MODE) 。

FrontCounterClockwise

类型: BOOL

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

DepthBias

类型: INT

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

DepthBiasClamp

类型: FLOAT

像素的最大深度偏差。 有关深度偏差的信息,请参阅 深度偏差

SlopeScaledDepthBias

类型: FLOAT

给定像素斜率上的标量。 有关深度偏差的信息,请参阅 深度偏差

DepthClipEnable

类型: BOOL

启用基于距离的剪裁。

硬件始终执行光栅化坐标的 x 和 y 剪裁。 当 DepthClipEnable 设置为 default–TRUE 时,硬件还会剪裁 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

启用剪刀矩形剔除。 将剔除活动剪刀矩形之外的所有像素。

MultisampleEnable

类型: BOOL

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

AntialiasedLineEnable

类型: BOOL

指定是否启用行抗锯齿;仅当进行线条绘制且 MultisampleEnableFALSE 时适用。 有关此成员的详细信息,请参阅备注。

注解

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

如果未指定某些光栅器状态,则 Direct3D 运行时对光栅器状态使用以下默认值。

状态 默认值
FillMode 单色
CullMode 返回
FrontCounterClockwise FALSE
DepthBias 0
SlopeScaledDepthBias 0.0f
DepthBiasClamp 0.0f
DepthClipEnable TRUE
ScissorEnable FALSE
MultisampleEnable FALSE
AntialiasedLineEnable FALSE
 
注意 对于 功能级别 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

要求

要求
Header d3d11.h

另请参阅

核心结构