Compartilhar via


estrutura D3D10_DDI_RASTERIZER_DESC (d3d10umddi.h)

A estrutura D3D10_DDI_RASTERIZER_DESC descreve um estado de rasterizador.

Sintaxe

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;

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 a seguir.

[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 a seguir.

[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 a seguir.

[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.

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 Disponível no Windows Vista e versões posteriores dos sistemas operacionais Windows.
Cabeçalho d3d10umddi.h (inclua D3d10umddi.h)

Confira também

CalcPrivateRasterizerStateSize

CreateRasterizerState