Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Polígonos que são coplanares em seu espaço 3D podem ser feitos para aparecer como se não fossem coplanares adicionando um viés z a cada um deles. Essa é uma técnica comumente usada para garantir que as sombras em uma cena sejam exibidas corretamente. Por exemplo, uma sombra em uma parede provavelmente terá o mesmo valor de profundidade que a parede. Se você renderizar a parede primeiro e depois a sombra, a sombra poderá não estar visível ou artefatos de profundidade poderão estar visíveis. Você pode reverter a ordem na qual renderiza os objetos coplanares na esperança de reverter o efeito, mas artefatos de profundidade ainda são prováveis.
Um aplicativo pode ajudar a garantir que os polígonos coplanares sejam renderizados corretamente adicionando um viés aos valores z que o sistema usa ao renderizar os conjuntos de polígonos coplanares. Para adicionar um viés z a um conjunto de polígonos, chame o método IDirect3DDevice9::SetRenderState pouco antes de renderizá-los, definindo o parâmetro State como D3DRS_DEPTHBIAS e o parâmetro Value para um valor flutuante adequado (por exemplo, um valor adequado pode ser de -1.0 a 1.0); para passar esse valor para SetRenderState, você também deve converter o valor em um DWORD. Um valor de viés z maior aumenta a probabilidade de que os polígonos renderizados fiquem visíveis quando exibidos com outros polígonos coplanares.
Offset = m * D3DRS_SLOPESCALEDEPTHBIAS + D3DRS_DEPTHBIAS
onde m é a inclinação de profundidade máxima do triângulo que está sendo renderizado.
m = max(abs(delta z / delta x), abs(delta z / delta y))
As unidades para os estados de renderização D3DRS_DEPTHBIAS e D3DRS_SLOPESCALEDEPTHBIAS dependem se o buffer z ou w-buffering está habilitado. O aplicativo deve fornecer valores adequados.
O viés não é aplicado a nenhuma linha e primitivo de ponto. No entanto, esse viés precisa ser aplicado a triângulos desenhados no modo wireframe.
// RenderStates
D3DRS_SLOPESCALEDEPTHBIAS, // Defaults to zero
D3DRS_DEPTHBIAS, // Defaults to zero
// Caps
D3DPRASTERCAPS_DEPTHBIAS
D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS
Tópicos relacionados
-
do Pipeline do Pixel