Introdução às regras de rasterização

Muitas vezes, os pontos especificados para vértices não correspondem precisamente aos pixels na tela. Quando isso acontece, o Direct3D aplica regras de rasterização de triângulo para decidir quais pixels se aplicam a um determinado triângulo.

Esta é uma introdução simplificada às regras de rasterização. Para obter mais detalhes, consulte Regras de rasterização. Veja também Estágio do rasterizador (RS).

Regras de rasterização de triângulo

O Direct3D usa uma convenção de preenchimento superior esquerda para preencher a geometria. Essa é a mesma convenção usada para retângulos em GDI e OpenGL. No Direct3D, o centro do pixel é o ponto decisivo. Se o centro estiver dentro de um triângulo, o pixel faz parte do triângulo. Os centros de pixel estão em coordenadas inteiras.

Essa descrição das regras de rasterização de triângulo usadas pelo Direct3D não se aplica necessariamente a todo o hardware disponível. Seus testes podem revelar pequenas variações na implementação dessas regras.

A ilustração a seguir mostra um retângulo cujo canto superior esquerdo está em (0, 0) e cujo canto inferior direito está em (5, 5). Este retângulo preenche 25 pixels, exatamente como seria de esperar. A largura do retângulo é definida como direita menos esquerda. A altura é definida como inferior menos superior.

um quadrado numerado dividido em seis linhas e colunas

Na convenção de preenchimento superior esquerdo, top refere-se à localização vertical de extensões horizontais e esquerda refere-se à localização horizontal de pixels dentro de uma extensão. Uma aresta não pode ser uma aresta superior, a menos que seja horizontal. Em geral, a maioria dos triângulos tem apenas arestas esquerda e direita. A ilustração a seguir mostra uma borda superior e uma borda direita.

um quadrado numerado que contém dois triângulos

A convenção de preenchimento superior esquerdo determina a ação executada pelo Direct3D quando um triângulo passa pelo centro de um pixel. A ilustração a seguir mostra dois triângulos, um em (0, 0), (5, 0) e (5, 5) e o outro em (0, 5), (0, 0) e (5, 5). O primeiro triângulo, neste caso, recebe 15 pixels (mostrado em preto), enquanto o segundo recebe apenas 10 pixels (mostrado em cinza) porque a borda compartilhada é a borda esquerda do primeiro triângulo.

um quadrado numerado que mostra dois triângulos

Se você definir um retângulo com seu canto superior esquerdo em (0,5, 0,5) e seu canto inferior direito em (2,5, 4,5), o ponto central desse retângulo estará em (1,5, 2,5). Quando o rasterizador Direct3D faz o mosaico desse retângulo, o centro de cada pixel está inequivocamente dentro de cada um dos quatro triângulos e a convenção de preenchimento superior esquerdo não é necessária. A ilustração a seguir mostra isso. Os pixels no retângulo são rotulados de acordo com o triângulo no qual o Direct3D os inclui.

Captura de tela de um quadrado numerado que contém um retângulo dividido em quatro triângulos.

Se você mover o retângulo na ilustração anterior para que seu canto superior esquerdo esteja em (1.0, 1.0), seu canto inferior direito em (3.0, 5.0) e seu ponto central em (2.0, 3.0), o Direct3D aplicará a convenção de preenchimento superior esquerdo. A maioria dos pixels nesse retângulo abrange a borda entre dois ou mais triângulos, como mostra a ilustração a seguir.

Captura de tela do quadrado numerado com o retângulo movido para baixo e para a direita.

Para ambos os retângulos, os mesmos pixels são afetados, conforme mostrado na ilustração a seguir.

pixels afetados pelos dois quadrados numerados anteriores

Regras de ponto e linha

Os pontos são renderizados da mesma forma que os sprites de ponto, que são renderizados como quadriláteros alinhados à tela e, portanto, seguem as mesmas regras da renderização de polígonos.

As regras de renderização de linha sem suavização são exatamente as mesmas das linhas GDI.

Regras de sprite de ponto

Sprites de ponto e primitivos de patch são rasterizados como se os primitivos fossem primeiro tesselados em triângulos e os triângulos resultantes rasterizados.

Dispositivos

Estágio do rasterizador (RS)

Regras de rasterização