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。
线条呈现算法 | MultisampleEnable | AntialiasedLineEnable |
---|---|---|
锯齿 | FALSE | FALSE |
Alpha 抗锯齿 | FALSE | TRUE |
四边形 | TRUE | FALSE |
四边形 | TRUE | TRUE |
MultisampleEnable 和 AntialiasedLineEnable 成员的设置仅适用于多重采样抗锯齿 (MSAA) 呈现目标 (即样本计数大于 1) 的呈现目标。 由于 功能级别 行为的差异,并且只要不执行任何线条绘制或不介意线条呈现为四边形,建议始终在 MSAA 呈现目标上呈现时将 MultisampleEnable 设置为 TRUE 。
要求
标头 | d3d10.h |