estrutura D3D11_1_DDI_RASTERIZER_DESC (d3d10umddi.h)
Descreve um estado de rasterizador. Usado pelo WDDM (Modelo de Driver de Exibição do Windows) 1.2 e drivers de exibição do modo de usuário posteriores.
Sintaxe
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;
Membros
[in] FillMode
Um valor que especifica o modo de preenchimento para primitivos. Esse membro deve ser definido como um dos seguintes valores da enumeração D3D10_DDI_FILL_MODE.
Valor | Significado |
---|---|
D3D10_DDI_FILL_WIREFRAME (2) | Preenche os wireframes. |
D3D10_DDI_FILL_SOLID (3) | Preenche sólidos. |
[in] CullMode
Um valor que especifica como os triângulos voltados para trás são eliminados, se em tudo. Esse membro deve ser definido como um dos seguintes valores da enumeração D3D10_DDI_CULL_MODE.
Valor | Significado |
---|---|
D3D10_DDI_CULL_NONE (1) | Não abata nenhum triângulo. |
D3D10_DDI_CULL_FRONT (2) | Cull front faces. |
D3D10_DDI_CULL_BACK (3) | Cull para trás rostos. |
[in] FrontCounterClockwise
Um valor booliano que especifica se os vértices fornecidos em uma ordem no sentido anti-horário (em relação ao rasterizador) estão voltados para a frente. TRUE indica que são; FALSE indica que os vértices no sentido anti-horário indicam voltados para trás.
[in] DepthBias
Uma constante de viés de profundidade a ser usada em fórmulas tendenciosas. Para obter mais informações sobre DepthBias, consulte a seção Comentários.
[in] DepthBiasClamp
Um vetor float de precisão única usado em fórmulas tendenciosas. Para obter mais informações sobre DepthBiasClamp, consulte a seção Comentários.
[in] SlopeScaledDepthBias
Um vetor float de precisão única usado em fórmulas tendenciosas. Para obter mais informações sobre SlopeScaledDepthBias, consulte a seção Comentários.
[in] DepthClipEnable
Um valor booliano que especifica se o driver deve cortar coordenadas z de vértice no intervalo de profundidade do visor. TRUE indica para cortar; FALSE indica não cortar.
[in] ScissorEnable
Um valor booliano que especifica se o driver deve descartar pixels que ficam fora da área retangular da tesoura apropriada. TRUE indica descartar; FALSE indica não descartar.
[in] MultisampleEnable
Um valor booliano que especifica se o driver deve seguir regras de rasterização de vários exemplos. TRUE indica para seguir as regras; FALSE indica que seguir as regras não é necessário. As regras de rasterização de vários exemplos são verdadeiras mesmo se os destinos de renderização contiverem apenas um único exemplo.
[in] AntialiasedLineEnable
Um valor booliano que especifica se o driver deve renderizar linhas que seguem as regras de rasterização de linhas suavizadas. TRUE indica para seguir as regras; FALSE indica que seguir as regras não é necessário. O driver ignorará o valor em AntialiasedLineEnable se as regras de rasterização de amostragem múltipla forem usadas.
[in] ForcedSampleCount
Durante a renderização de UAVs (exibições de acesso não ordenadas) ou rtvs (exibições de destino de renderização), especifica se uma contagem de exemplo deve ser forçada e, em caso afirmativo, a contagem máxima de exemplos. Os valores válidos são 0, 1, 4, 8 e 16.
Se zero, o driver não deve forçar uma contagem de exemplo.
Comentários
Um dos artefatos com sombras baseadas em buffer de sombra é "acne de sombra" (ou seja, uma superfície que se sombreia de forma intermitente devido à inexactidade na computação da profundidade da superfície do sombreador que é comparada com a profundidade da mesma superfície no buffer de sombra). Uma maneira de aliviar a acne de sombra é usar os membros DepthBias e SlopeScaledDepthBias quando você renderiza um buffer de sombra. A intenção é enviar superfícies para fora o suficiente ao renderizar um buffer de sombra. Quando essas superfícies são comparadas a si mesmas por meio de z computado por sombreador durante o teste de sombra, o resultado da comparação é consistente em toda a superfície e o sombreamento local-auto-sombreado é evitado.
No entanto, usar DepthBias e SlopeScaledDepthBias sozinho pode introduzir alguns artefatos. Por exemplo, um polígono extremamente íngreme faz com que a equação de viés exploda, o que empurra o polígono extremamente longe da superfície de origem no mapa de sombra. Considere uma face íngreme, em relação a uma luz, que é afastada extremamente longe em relação às dimensões do objeto pai por desvio de profundidade. Suponha que este rosto esteja cercado por rostos mais rasos que a equação de viés empurrou muito menos. O mapa de sombra resultante tem uma enorme descontinuidade que pode causar buracos na sombra que são convertidos por uma superfície em outra superfície mais perto do que os rostos explodidos. Uma maneira de ajudar a aliviar esse problema específico é usar o membro DepthBiasClamp , que fornece um limite superior configurável pelo aplicativo (positivo ou negativo) na magnitude do desvio z.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 8 |
Servidor mínimo com suporte | Windows Server 2012 |
Cabeçalho | d3d10umddi.h (inclua D3d10umddi.h) |