Reglas de rasterización (Direct3D 9)

A menudo, los puntos especificados para los vértices no coinciden exactamente con los píxeles de la pantalla. Cuando esto sucede, Direct3D aplica reglas de rasterización de triángulos para decidir qué píxeles se aplican a un triángulo determinado.

Reglas de rasterización de triángulos

Direct3D usa una convención de relleno de la parte superior izquierda para rellenar la geometría. Esta es la misma convención que se usa para rectángulos en GDI y OpenGL. En Direct3D, el centro del píxel es el punto decisivo. Si el centro está dentro de un triángulo, el píxel forma parte del triángulo. Los centros de píxeles están en coordenadas enteras.

Esta descripción de las reglas de rasterización de triángulos usadas por Direct3D no se aplica necesariamente a todo el hardware disponible. Las pruebas pueden descubrir pequeñas variaciones en la implementación de estas reglas.

En la ilustración siguiente se muestra un rectángulo cuya esquina superior izquierda está en (0, 0) y cuya esquina inferior derecha está en (5, 5). Este rectángulo rellena 25 píxeles, como cabría esperar. El ancho del rectángulo se define como derecho menos a la izquierda. El alto se define como inferior menos superior.

ilustración de un cuadrado numerado dividido en seis filas y columnas

En la convención de relleno de la parte superior izquierda, top hace referencia a la ubicación vertical de los intervalos horizontales y la izquierda hace referencia a la ubicación horizontal de píxeles dentro de un intervalo. Un borde no puede ser un borde superior a menos que sea horizontal. En general, la mayoría de los triángulos solo tienen bordes izquierdo y derecho. En la ilustración siguiente se muestra un borde superior y un borde derecho.

ilustración de un cuadrado numerado que contiene dos triángulos

La convención de relleno de la parte superior izquierda determina la acción realizada por Direct3D cuando un triángulo pasa por el centro de un píxel. En la ilustración siguiente se muestran dos triángulos, uno en (0, 0), (5, 0) y (5, 5), y el otro en (0, 5), (0, 0) y (5, 5). El primer triángulo en este caso obtiene 15 píxeles (se muestra en negro), mientras que el segundo obtiene solo 10 píxeles (mostrados en gris) porque el borde compartido es el borde izquierdo del primer triángulo.

ilustración de un cuadrado numerado que muestra dos triángulos

Si define un rectángulo con su esquina superior izquierda en (0,5, 0,5) y su esquina inferior derecha en (2,5, 4,5), el punto central de este rectángulo está en (1,5, 2,5). Cuando el rasterizador direct3D tesela este rectángulo, el centro de cada píxel no es ambiguo dentro de cada uno de los cuatro triángulos y no es necesario la convención de relleno superior izquierda. En la ilustración siguiente se muestra esto. Los píxeles del rectángulo se etiquetan según el triángulo en el que Direct3D los incluye.

Muestra un cuadrado numerado que contiene un rectángulo dividido en cuatro triángulos.

Si mueve el rectángulo en la ilustración anterior para que su esquina superior izquierda esté en (1.0, 1.0), su esquina inferior derecha en (3.0, 5.0) y su punto central en (2.0, 3.0), Direct3D aplica la convención de relleno superior izquierda. La mayoría de los píxeles de este rectángulo se extienden por el borde entre dos o más triángulos, como se muestra en la ilustración siguiente.

ilustración de un cuadrado numerado que contiene un rectángulo dividido en cuatro triángulos

Para ambos rectángulos, se ven afectados los mismos píxeles, como se muestra en la ilustración siguiente.

ilustración de píxeles afectados por los dos cuadrados numerados anteriores

Reglas de punto y línea

Los puntos se representan igual que los sprites de punto, que se representan como cuadrilaterales alineados con pantalla y, por lo tanto, se adhieren a las mismas reglas que la representación de polígonos.

Las reglas de representación de líneas no antialiased son exactamente las mismas que las de las líneas GDI.

Para obtener información sobre la representación de líneas antialiased, vea ID3DXLine.

Reglas de sprite de punto

Las sprites de punto y los primitivos de revisión se rasterizan como si los primitivos se hubieran teselado primero en triángulos y los triángulos resultantes rasterizados. Para obtener más información, vea Point Sprites (Direct3D 9) (Sprites de punto [Direct3D 9]).

Sistemas de coordenadas y geometría