D3D11_1_DDI_RASTERIZER_DESC 结构 (d3d10umddi.h)
描述光栅器状态。 由 Windows 显示驱动程序模型 (WDDM) 1.2 及更高版本的用户模式显示驱动程序使用。
语法
typedef struct D3D11_1_DDI_RASTERIZER_DESC {
[in] D3D10_DDI_FILL_MODE FillMode;
[in] D3D10_DDI_CULL_MODE CullMode;
[in] BOOL FrontCounterClockwise;
[in] INT DepthBias;
[in] FLOAT DepthBiasClamp;
[in] FLOAT SlopeScaledDepthBias;
[in] BOOL DepthClipEnable;
[in] BOOL ScissorEnable;
[in] BOOL MultisampleEnable;
[in] BOOL AntialiasedLineEnable;
[in] UINT ForcedSampleCount;
} D3D11_1_DDI_RASTERIZER_DESC;
成员
[in] FillMode
一个 值,该值指定基元的填充模式。 此成员必须设置为D3D10_DDI_FILL_MODE枚举中的以下值之一。
值 | 含义 |
---|---|
D3D10_DDI_FILL_WIREFRAME (2) | 填充线框。 |
D3D10_DDI_FILL_SOLID (3) | 填充实心。 |
[in] CullMode
一个 值,该值指定如何剔除朝后三角形(如果有)。 此成员必须设置为 D3D10_DDI_CULL_MODE 枚举中的以下值之一。
值 | 含义 |
---|---|
D3D10_DDI_CULL_NONE (1) | 不要剔除任何三角形。 |
D3D10_DDI_CULL_FRONT (2) | 剔除正面。 |
D3D10_DDI_CULL_BACK (3) | 剔除背部的脸。 |
[in] FrontCounterClockwise
一个布尔值,指定相对于光栅器) 按逆时针顺序提供的顶点 (是否正面。 TRUE 表示它们是; FALSE 指示逆时针顶点指示朝后。
[in] DepthBias
用于偏差公式的深度偏差常量。 有关 DepthBias 的详细信息,请参阅“备注”部分。
[in] DepthBiasClamp
用于偏置公式的单精度浮点向量。 有关 DepthBiasClamp 的详细信息,请参阅“备注”部分。
[in] SlopeScaledDepthBias
用于偏置公式的单精度浮点向量。 有关 SlopeScaledDepthBias 的详细信息,请参阅“备注”部分。
[in] DepthClipEnable
一个布尔值,指定驱动程序是否应根据视区深度范围剪裁顶点 z 坐标。 TRUE 指示要剪辑; FALSE 指示不剪辑。
[in] ScissorEnable
一个布尔值,指定驱动程序是否应放弃位于相应剪刀矩形区域之外的像素。 TRUE 指示放弃; FALSE 指示不放弃。
[in] MultisampleEnable
一个布尔值,指定驱动程序是否必须遵循多重采样光栅化规则。 TRUE 指示遵循规则; FALSE 表示不需要遵循规则。 即使呈现目标仅包含一个样本,多采样光栅化规则也保持 true。
[in] AntialiasedLineEnable
一个布尔值,指定驱动程序是否应呈现遵循抗锯齿线光栅化规则的线条。 TRUE 指示遵循规则; FALSE 表示不需要遵循规则。 如果改用多采样光栅化规则,驱动程序将忽略 AntialiasedLineEnable 中的值。
[in] ForcedSampleCount
在呈现无序访问视图 (UAV) 或呈现目标视图 (RTV) 期间,指定是否强制采样计数,如果是,则指定最大样本计数。 有效值为 0、1、4、8 和 16。
如果为零,则驱动程序不应强制采样计数。
注解
具有基于阴影缓冲区的阴影的项目之一是“阴影粉刺” (即,由于从着色器计算表面深度时不精确,因此以间歇性的方式隐藏自身的表面,该着色器与阴影缓冲区) 中同一表面的深度进行比较。 缓解阴影痤疮的一种方法是在渲染阴影缓冲区时使用 DepthBias 和 SlopeScaledDepthBias 成员。 目的是在呈现阴影缓冲区时将表面推出足够多。 在阴影测试期间,通过着色器计算的 z 将这些图面与自身进行比较时,比较结果在整个图面上是一致的,并避免局部自阴影。
但是,仅使用 DepthBias 和 SlopeScaledDepthBias 可能会引入一些项目。 例如,极其陡峭的多边形会导致偏置方程爆炸,从而将多边形推离阴影贴图中原始表面的极远。 考虑一个陡峭的面,相对于光,通过深度偏差推开与父对象的尺寸非常远。 假设此面被偏置等式所推出的较浅的面所包围。 生成的阴影贴图具有巨大的不连续性,这可能会导致阴影中的孔,由一个表面投射到另一个比爆炸面更近的表面。 帮助缓解此特定问题的一种方法是使用 DepthBiasClamp 成员,该成员提供应用程序可设置的上限 (z 偏差幅度的正) 或负值。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8 |
最低受支持的服务器 | Windows Server 2012 |
标头 | d3d10umddi.h (包括 D3d10umddi.h) |