D3D11_RASTERIZER_DESC1 结构 (d3d11_1.h)

注意 Direct3D 11.1 运行时支持此结构,该运行时在 Windows 8 及更高版本的操作系统上可用。
 
描述光栅器状态。

语法

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

成员

FillMode

类型: D3D11_FILL_MODE

确定呈现时要使用的填充模式。

CullMode

类型: D3D11_CULL_MODE

指示不绘制面向指定方向的三角形。

FrontCounterClockwise

类型: BOOL

指定三角形是正面还是向后。 如果 为 TRUE,则如果三角形顶点在呈现目标上逆时针,则三角形被视为正面;如果顶点顺时针,则被视为朝后。 如果 为 FALSE,则相反。

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 时才适用。 有关此成员的详细信息,请参阅备注。

ForcedSampleCount

类型: UINT

UAV 呈现或光栅化时强制的样本计数。 有效值为 0、1、2、4、8 和可选 16。 0 表示样本计数不是强制的。

注意 如果要在 将 ForcedSampleCount 设置为 1 或更大的情况下呈现,必须遵循以下准则:否则,呈现行为未定义。 有关如何配置深度模具的信息,请参阅 配置 Depth-Stencil 功能
 

注解

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

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

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

要求

   
最低受支持的客户端 适用于 Windows 7 的 Windows 8 和平台更新 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2012 和适用于 Windows Server 2008 R2 的平台更新 [桌面应用 |UWP 应用]
标头 d3d11_1.h

另请参阅

核心结构