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) | Cull back face. |
[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) |