D3D10_DDI_RASTERIZER_DESC 结构 (d3d10umddi.h)
D3D10_DDI_RASTERIZER_DESC结构描述光栅器状态。
语法
typedef struct D3D10_DDI_RASTERIZER_DESC {
[in] D3D10_DDI_FILL_MODE FillMode;
[in] D3D10_DDI_CULL_MODE CullMode;
[in] BOOL FrontCounterClockwise;
[in] INT32 DepthBias;
[in] FLOAT DepthBiasClamp;
[in] FLOAT SlopeScaledDepthBias;
[in] BOOL DepthClipEnable;
[in] BOOL ScissorEnable;
[in] BOOL MultisampleEnable;
[in] BOOL AntialiasedLineEnable;
} D3D10_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) | Cull 前脸。 |
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 中的值。
注解
具有基于阴影缓冲区的阴影的一个伪影是“阴影粉刺” (即,由于从着色器与阴影缓冲区) 中同一表面深度进行比较的着色器计算表面深度不精确,因此以间歇性的方式隐藏自身。 缓解阴影痤疮的一种方法是在呈现阴影缓冲区时使用 DepthBias 和 SlopeScaledDepthBias 成员。 目的是在呈现阴影缓冲区时向外推送足够多的图面。 在阴影测试期间,通过着色器计算的 z 将这些表面与自身进行比较时,比较结果在整个图面上是一致的,并避免局部自阴影。
但是,单独使用 DepthBias 和 SlopeScaledDepthBias 可能会引入一些项目。 例如,极其陡峭的多边形会导致偏差公式爆炸,从而将多边形推离阴影地图中原始表面非常远。 考虑一个陡峭的脸,相对于光,它通过深度偏差推开了非常远的父对象尺寸。 假设此人脸被较浅的人脸包围,偏差公式推出的面要少得多。 生成的阴影贴图具有巨大的不连续性,可能导致阴影中的孔,由一个表面投射到另一个表面比爆炸的面更近。 帮助缓解此特定问题的一种方法是使用 DepthBiasClamp 成员,它提供应用程序可设置的上限 (z 偏差幅度的正负) 。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 Windows Vista 和更高版本的 Windows 操作系统中可用。 |
标头 | d3d10umddi.h (包括 D3d10umddi.h) |