D3D11_RASTERIZER_DESC1 结构 (d3d11_1.h)
语法
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
指定是否启用行抗锯齿;仅当执行线条绘制且 MultisampleEnable 为 FALSE 时才适用。 有关此成员的详细信息,请参阅备注。
ForcedSampleCount
类型: UINT
UAV 呈现或光栅化时强制的样本计数。 有效值为 0、1、2、4、8 和可选 16。 0 表示样本计数不是强制的。
- 不要绑定深度模具视图。
- 禁用深度测试。
- 确保着色器不输出深度。
- 如果有任何呈现目标视图绑定 (D3D11_BIND_RENDER_TARGET) 且 ForcedSampleCount 大于 1,请确保每个呈现目标只有一个示例。
- 不要以采样频率操作着色器。 因此, ID3D11ShaderReflection::IsSampleFrequencyShader 返回 FALSE。
注解
光栅器状态定义光栅器阶段的行为。 若要创建光栅器状态对象,请调用 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 |
线条呈现算法 | MultisampleEnable | AntialiasedLineEnable |
---|---|---|
锯齿 | FALSE | FALSE |
Alpha 抗锯齿 | FALSE | TRUE |
四边形 | TRUE | FALSE |
四边形 | TRUE | TRUE |
MultisampleEnable 和 AntialiasedLineEnable 成员的设置仅适用于多重采样抗锯齿 (MSAA) 呈现目标 (即,呈现样本计数大于 1) 的目标。 由于 功能级别 行为存在差异,并且只要不执行任何线条绘制或不介意线条呈现为四边形,我们建议每当在 MSAA 呈现目标上呈现时,始终将 MultisampleEnable 设置为 TRUE 。
要求
最低受支持的客户端 | 适用于 Windows 7 的 Windows 8 和平台更新 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2012 和适用于 Windows Server 2008 R2 的平台更新 [桌面应用 |UWP 应用] |
标头 | d3d11_1.h |