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.
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.
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.
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.
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.
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.
Para ambos rectángulos, se ven afectados los mismos píxeles, como se muestra en la ilustración siguiente.
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.
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]).